파이썬을 설치하고 크롤링에 필요한 라이브러리를 설치한다.
requests, beaurifulsoup4
import requests
from bs4 import BeautifulSoup
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('https://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=pnt&date=20210829',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
크롤링 원하는 목록을 선택하고 개발자 도구를 사용하여 태그를 선택 복사한다.
import requests
from bs4 import BeautifulSoup
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('https://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=pnt&date=20210829',headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
#태그 하나를 복사하면 아래와 같다.
# title = soup.select_one('#old_content > table > tbody > tr:nth-child(2) > td.title > div > a')
#목록 태그를 하나씩 복사하면 아래와 같은 패턴임을 알 수 있다.
#old_content > table > tbody > tr:nth-child(2) > td.title > div > a
#old_content > table > tbody > tr:nth-child(3) > td.title > div > a
#old_content > table > tbody > tr:nth-child(4) > td.title > div > a
movies = soup.select('#old_content > table > tbody > tr') //여러 값을 출력하는 select
#BeautifulSoup 라이브러리를 사용하여 목록의 배열을 만들고
#반복문을 사용하여 하나씩 출력해 준다.
for movie in movies:
a = movie.select_one('td.title > div > a') # 하나씩 출력하는 select_one
if a is not None: # 조건문을 사용하여 값이 없는 부분은 출력하지 않는다.
print(a.text)
위와 같은 방법으로 영화순위의 text 즉 제목만을 불러올 수 있다.
movies = soup.select('#old_content > table > tbody > tr')
for movie in movies:
a = movie.select_one('td.title > div > a') #동일한 방법으로 제목을
num = movie.select_one('td:nth-child(1) > img') #동일한 방법으로 순위를
rank = movie.select_one('td.point') #동일한 방법으로 평점을 크롤링하여 가져온다.
if a is not None:
print(num['alt'],a.text,rank.text)
# 순위 제목 평점 순으로 출력이 된다.
지니뮤직 크롤링하기 (0) | 2022.12.05 |
---|---|
mongoDB에 가입하고 사용해보기 (0) | 2022.12.02 |
Ajax를 사용하여 이미지와 텍스트 불러오기 (0) | 2022.11.30 |
Ajax로 서울시 실시간 따릉이 현황(OpenAPI) (0) | 2022.11.29 |
Ajax로 서울시 미세먼지 상태 보기(OpenAPI) (0) | 2022.11.29 |