728x90
※ Mac OS 사용, VS Code 사용
1. 사전준비
- Requests 설치
pip3 install requests 를 VS Code의 터미널 창에 입력하여 설치한다. - BeautifulSoup4 설치
pip3 install bs4 또는 pip3 install beautifulsoup4 를 VS Code의 터미널 창에 입력하여 설치한다.
2. 네이버 영화 순위 페이지 : https://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=pnt&date=20230208
Chrome으로 위의 링크를 연 후 F12(또는 우클릭 > 검사)를 눌러서 HTML 구조 파악
3. 원하는 데이터 확인하기!
- 순위
<td class="ac">의 <img> 태그 속 alt 속성이 순위를 나타낸다.
- 제목
<td class="title"> 의 <div> 의 <a> 내용이 제목이다.
- 평점
<td class="point"> 의 내용이 평점이다.
4. 코드 작성
import requests
from bs4 import BeautifulSoup
# 타겟 URL을 읽어서 HTML를 받아온다.
data = requests.get('https://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=pnt&date=20230208')
# HTML을 BeautifulSoup이라는 라이브러리를 활용해 검색하기 용이한 상태로 만듦
soup = BeautifulSoup(data.text, 'html.parser')
# select를 이용해서, 영화 정보가 들어있는 tr들을 불러오기
# 위의 사진처럼 HTML 파일을 살펴보면서 가져올 부분 확인하여 작성
movies = soup.select('#old_content > table > tbody > tr')
# movies(tr들)의 반복문을 돌리기
for movie in movies:
# 각각 필요한 정보들 가져오기
a_rank = movie.select_one('td.ac > img')
a_tag = movie.select_one('td.title > div > a')
a_point = movie.select_one('td.point')
# movie 안에 <a>가 있으면
if a_tag is not None:
print(a_rank['alt'],a_tag.text, a_point.text)
select() : 조건을 만족하는 모든 요소를 리스트에 담아 반환
select_one() : 그 중 가장 위에 나오는 요소 하나를 반환
728x90