파이썬을 설치한 후 기본 문법은 지난 시간에 배웠던 javascript와 같다.
웹 크롤링을 시작하기 전에는 가상 환경이 구성되어 있어야 한다.
가상 환경도 실행되어 있다면 크롤링 기본 코드 세팅을 해보자.
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')
위의 코드는 웹 크롤링을 실행할 때 항상 맨 위에 존재하는 코드들이다.
크롤링할 때 가장 많이 사용되는 메서드는 select
와 select_one
이다.
select(): 모든 html 요소를 찾는 메소드
select_one(): 하나의 html 요소를 찾는 메소드
() 안에 들어가는 요소가 class일 때는 .class명 으로 작성하고,
id일 때는 #id명 으로 작성해야 한다.
또한, 태그 검색시
크롬 개발자 도구에서 원하는 태그 위에 오른쪽 클릭한 후
copy > copy selector
선택자를 사용하는 방법
soup.select('태그명')
soup.select('.클래스명')
soup.select('#아이디명')개발자 도구에서 copy selector 사용하여 태그 복사 사용하는 방법
soup.select('상위 태그명 > 하위 태그명 > 하위 태그명')
soup.select('상위 태그명.클래스명 > 하위 태그명.클래스명')태그와 속성값으로 찾는 방법
soup.select('태그명[속성='값']')
한 개만 가져오고 싶은 경우
soup.select_one('위와 동일')
Data Base에는 크게 두가지 종류가 있다.
사용할 DB는 'MongoDB'이고 이 DB를 조작할 tool 은 'pymongo'이다.
# users 이라는 'collection'에 {'name':'영희', 'age':19} 이라는 '딕셔너리 자료형' 넣기
db.users.insert_one({'name':'영희', 'age':19})
#모든 데이터 보기
all_users = list(db.users.find({}, {'_id':False}))
# n번째 결과값 보기
all_users[n]
# n번째 결과값의 '명칭'값 보기
all_users[n]['명칭']
user = db.users.find_one({})
db.users.update_one({조건값}, {"$set":{수정값}})
db.users.delete_one({조건값})