반응형
[셀레니움 기초 4편] html 데이터 읽기 bs4
파이썬, 셀레니움을 사용하여 인터넷에 원하는 정보를 자동으로 스크랩하는 방법을 소개합니다.
목차:
- 1. BeautifulSoup 소개
- 2. 네이버 현재 상영작 정보 개발자 도구로 분석
- 3. (1) bs4 html 파싱 with 셀레니움
- 4. (2) bs4 html 파싱 with requests
1. BeautifulSoup 소개
html 정보를 파싱하는 도구
- BeautifulSoup의 bs4 패키지를 사용하여 html을 분석하여 원하는 데이터를 얻을 수 있습니다.
- 셀레니움, requests 패키지 등과 사용할 수 있습니다.
- bs4 패키지 설치
pip install beautifulsoup4
2. 네이버 현재 상영작 정보 개발자 도구로 분석
- 네이버에서 현재상영작을 검색합니다.
- [F12] 또는 [우클릭 > 검사]로 개발자 도구 를 열어줍니다.
- 개발자 도구 를 사용해서 해당 영역의 html을 분석합니다.
- ※ 어느 영역을 선택하느냐에 따라 결과가 달라질 수 있습니다.
- ※ 중복되는 class name이 있을 수 있습니다.
- 해당 영역이 'data_box' 라는 class 로 묶여 있는 것을 확인할 수 있습니다.
- 이 class name의 데이터를 텍스트형식으로 얻어보겠습니다.
3. 셀레니움 + html 파싱
class : data_box 의 텍스트 데이터를 추출해보겠습니다.
# selenium Ver : 3.14.1
from selenium import webdriver
# pip install beautifulsoup4
from bs4 import BeautifulSoup as bs
# 웹드라이버 열기 (네이버에 현재상영작 검색 URL)
url = "https://search.naver.com/search.naver?sm=tab_hty.top&query=현재상영작"
driver = webdriver.Chrome()
driver.get(url)
# 크롬드라이버의 현재 페이지의 url 얻기
page_url = driver.page_source
# 현재 url 주소의 html 데이터를 파싱
soup = bs(page_url, "html.parser")
movie_list = soup.find_all(class_='data_box')
# 8개의 영화 정보가 리스트로 저장되어 있습니다.
for movie_info in movie_list:
print(movie_info.text)
결과 (날짜에 따라 결과가 다를 수 있습니다.)
듄 개요 모험 155분 개봉 2021.10.20. 평점 8.33 출연 티모시 샬라메, 레베카 퍼거슨, 오스카 아이삭, 조슈 브롤린, 제이슨 모모아, 하비에르 바르뎀
베놈 2: 렛 데어 비 카니지 개요 액션 97분 개봉 2021.10.13. 평점 6.28 출연 톰 하디, 미셸 윌리엄스, 나오미 해리스, 레이드 스콧, 스테판 그레이엄, 우디 해럴슨
보이스 개요 범죄 109분 개봉 2021.09.15. 평점 8.43 출연 변요한, 김무열, 김희원, 박명훈, 이주영, 조재윤
007 노 타임 투 다이 개요 액션 163분 개봉 2021.09.29. 평점 7.09 출연 다니엘 크레이그, 라미 말렉, 라샤나 린치, 레아 세이두, 벤 위쇼, 아나 디 아르마스
라스트 듀얼: 최후의 결투 개요 액션 152분 개봉 2021.10.20. 평점 9.80 출연 맷 데이먼, 아담 드라이버, 조디 코머, 벤 애플렉, 해리엇 월터, 나다니엘 파커
기적 개요 드라마 117분 개봉 2021.09.15. 평점 9.11 출연 박정민, 이성민, 윤아, 이수경, 김강훈, 정문성
노회찬6411 개요 다큐멘터리 127분 개봉 2021.10.14. 평점 9.30 출연 노회찬
한창나이 선녀님 개요 다큐멘터리 83분 개봉 2021.10.20. 평점 10.00 출연 임선녀
4. requests + html 파싱
pip install requests
# selenium Ver : 3.14.1
# pip install beautifulsoup4
from bs4 import BeautifulSoup as bs
# pip install request
import requests
# 네이버에 현재상영작 검색 바로가기 URL
url = "https://search.naver.com/search.naver?sm=tab_hty.top&query=현재상영작"
response = requests.get(url)
# 상태체크 "200" : "정상", 정상일 경우 파싱
if response.status_code == 200:
html = response.text
soup = bs(html, "html.parser")
movie_list = soup.find_all(class_='data_box')
# 8개의 영화 정보가 리스트로 저장되어 있습니다.
for movie_info in movie_list:
print(movie_info.text)
결과 (날짜에 따라 결과가 다를 수 있습니다.)
듄 개요 모험 155분 개봉 2021.10.20. 평점 8.33 출연 티모시 샬라메, 레베카 퍼거슨, 오스카 아이삭, 조슈 브롤린, 제이슨 모모아, 하비에르 바르뎀
베놈 2: 렛 데어 비 카니지 개요 액션 97분 개봉 2021.10.13. 평점 6.28 출연 톰 하디, 미셸 윌리엄스, 나오미 해리스, 레이드 스콧, 스테판 그레이엄, 우디 해럴슨
보이스 개요 범죄 109분 개봉 2021.09.15. 평점 8.43 출연 변요한, 김무열, 김희원, 박명훈, 이주영, 조재윤
007 노 타임 투 다이 개요 액션 163분 개봉 2021.09.29. 평점 7.09 출연 다니엘 크레이그, 라미 말렉, 라샤나 린치, 레아 세이두, 벤 위쇼, 아나 디 아르마스
라스트 듀얼: 최후의 결투 개요 액션 152분 개봉 2021.10.20. 평점 9.80 출연 맷 데이먼, 아담 드라이버, 조디 코머, 벤 애플렉, 해리엇 월터, 나다니엘 파커
기적 개요 드라마 117분 개봉 2021.09.15. 평점 9.11 출연 박정민, 이성민, 윤아, 이수경, 김강훈, 정문성
노회찬6411 개요 다큐멘터리 127분 개봉 2021.10.14. 평점 9.30 출연 노회찬
한창나이 선녀님 개요 다큐멘터리 83분 개봉 2021.10.20. 평점 10.00 출연 임선녀
[셀레니움 기초 1편] 패키지 설치 및 웹페이지 열기
[셀레니움 기초 2편] 텍스트 입력 | 버튼 클릭 | 페이지 이동
[셀레니움 기초 3-1편] 네이버 자동 로그인
[셀레니움 기초 3-2편] 쿠팡 자동 로그인
[셀레니움 기초 4편] html 데이터 읽기 bs4
python3.9 | camp-lee@naver.com
반응형
'셀레니움 > 기초 따라하기' 카테고리의 다른 글
[셀레니움 응용] 네이버 메일 보내기 (0) | 2021.11.05 |
---|---|
[셀레니움 기초 3-2편] 쿠팡 자동 로그인 (0) | 2021.10.18 |
[셀레니움 기초 3-1편] 네이버 자동 로그인 (0) | 2021.10.18 |
[셀레니움 기초 2편] 텍스트 입력 버튼 클릭 페이지 이동 (0) | 2021.10.15 |
[셀레니움 기초 1편] 패키지 설치 및 웹페이지 열기 (0) | 2021.10.15 |