Blog

[Python][MongoDB]16 3주차 Python, MongoDB, Crawling 스터디 회고(WIL)

Category
Author
Tags
PinOnMain
1 more property
3주차는 Python입문과 웹크롤링, MongoDB까지 과정을 배웠다.
Python:
함수, 변수, 조건문, 반복문 등이 Python에선 어떻게 표현되는지 기초 문법을 사용
주의해야 될 것은 함수는 def라는 명칭으로 시작하고 ' : ' 콜론을 사용한다. 또한 실행될 함수 내용은 ' ' 탭 빈공간으로 열맞춤이 꼭 맞춰줘야 한다는 점
가상환경 venv 구축법(python3 -m venv .venv)
venv내 라이브러리 설치법 (pip install xxx)
라이브러리 임포트(import xxx)
requests 라이브러리 사용해보기 데이터 가져오기 (data = requests.get(’link’)
크롤링에서 **BeautifulSoup 라이브러리 사용해보기(**우리가 원하는 특정 부분 을 빠르고 쉽게 필터링 해주는 라이브러리)
크롤링 필수 코드
import requests from bs4 import BeautifulSoup URL = "https://movie.daum.net/ranking/reservation" headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'} data = requests.get(URL, headers=headers) soup = BeautifulSoup(data.text, 'html.parser')
Haskell
복사
soup의 select()를 통해 원하는 데이터 스코프를 지정
MongoDB
클라우드 서비스인 MongoDB Atlas 가입
Python에서 웹에 있는 MongoDB를 조작 환경구축
dnspython라이브러리 설치pip install dnspython
pymongo라이브러리 설치pip install pymysql
pymongo 를 사용해서 DB에 접속
# Python과 DB를 연결하는 코드(공통)# MongoDB를 사용할 준비가 되었다.from pymongo import MongoClient import certifi ca = certifi.where() client = MongoClient('mongodb+srv://<account>,test@cluster0.lu7mz8j.mongodb.net/?retryWrites=true&w=majority',tlsCAFile=ca) db = client.dbsparta
CoffeeScript
복사
from pymongo import MongoClient client = MongoClient('여기에 URL 입력') db = client.dbsparta
Atlas에 들어가서 준비해둔 DB에서 Connection string을 URL에 입력
certifi 라이브러리 필요(os마다다름)
SSL: CERTIFICATE_VERIFY_FAILED 에러 해결
# INSERT_ONE # 저장 - 예시 # doc = {'name':'bobby','age':21} # db.users.insert_one(doc) # READ(FIND_ONE) # 한 개 찾기 - 예시 # user = db.users.find_one({'name':'bobby'}) # print(user) # READ(FIND) # 여러개 찾기 - 예시 ( _id 값은 제외하고 출력) # all_users = list(db.users.find({},{'_id':False})) # for a in all_users: # print(a) # UPDATE # 바꾸기 - 예시 # db.users.update_one({'name':'bobby'},{'$set':{'age':19}}) # DELETE # 지우기 - 예시 # db.users.delete_one({'name':'bobby'})
Plain Text
복사
웹 크롤링 데이터를 DB와 연결하여 넣기, 찾기, 수정하기
Python에서는 줄바꿈(탭)을 유의
크롤링 할 때 계층 구조를 정확히 이해하면서 원하는 데이터가 어디 있는지 파악
어려운점,
전체적으로 Python의 주어진 내용은 쉽게 접근 할 수 있었지만, 처음 배우다보니 기능에 따라 필요한 라이브러리를 정리해야겠다고 생각했다. 지금이야 몇개 쓰지 않지만, 의존성 주입이 나중에는 많아질 것이라 기능구현별 패키지, 라이브러리들을 적재 적소에 설치해야겠다. 또한 의존성 주입 없이 하면 찾기 어려운 오류가 난다는것 명심.
배운점,
MongoDB SQL문을 이전에 한번 쭉 보긴했었는데, 실제로 사용되는 것들은 몇 개 없었다. 하지만 SQL 코딩 테스트처럼 로직 난이도가 높아지면 복잡해질 수 있으니 기본 구문들을 잘 기억해두어야겠다.