beautifull soup이라는 패키지를 다운 받아야 크롤링 가능.
pip install bs4
위 코드로 설치 완료! 그럼 다음으로 넘어가기
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')
위 코드가 기본 고정 코드.
url에 내가 원하는 사이트 넣으면 됨.
내가 원하는 정보를 가져오려면 정보 오른쪽 누르고 선택, 복사 > selector 복사 눌러서 하단 soup.select에 넣고 lis를 찍으면 정보가 가져와진다. 아래 하단 코드에서는 lis를 반복으로 돌려서 lis 안에 있는 특정한 애를 가져오는 것.
select_one, select 같은 애들은 soup에서 지정한 특정 단어들.
lis = soup.select('#mainContent > div > div.box_ranking > ol > li')
for li in lis:
title = li.select_one('.link_txt')
print(title.text)
위 코드를 작성하면 내가 원하는 정보를 가져올 수 있다.
위 코드로 다음 영화에서 순위 별 제목을 가져옴.
[응용] cgv 인기 영화 순위를 가져와봤다.
select에서는 text가 안 먹히고 select.one에서만 먹힌다.
import requests
from bs4 import BeautifulSoup
URL = "http://www.cgv.co.kr/movies/?lt=1&ft=0"
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')
lis = soup.select('#contents > div.wrap-movie-chart > div.sect-movie-chart > ol > li')
for li in lis:
titles = li.select_one('.title').text
print(titles);