DevSSOM
파이썬 크롤링 - 간단한 실습 : 영화 리뷰 수집 본문
반응형
영화 리뷰 수집하기
영화 사이트에 있는 영화평의 제목을 수집해서 출력해보기.
사용 URL 주소 : https://movie.naver.com/movie/bi/mi/review.nhn?code=168058#
수집할 리뷰
출력 예시
후기 제목 1
후기 제목 2
팁
HTML 문서에서 원하는 태그를 정확히 추출하기 위해, find 함수를 여러 번 중첩하여 사용할 수 있음. 아래처럼 find로 찾은 결과에서 다시 find 함수로 찾는 방식.
# 예시
soup.find("ul").find("li").find("div").find("span")
import requests
from bs4 import BeautifulSoup
def crawling(soup) :
# soup 객체에서 추출해야 하는 정보를 찾고 반환
return None
def main() :
custom_header = {
'referer' : 'https://movie.naver.com/',
'user-agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'
}
url = "https://movie.naver.com/movie/bi/mi/review.nhn?code=168058#"
req = requests.get(url, headers = custom_header)
soup = BeautifulSoup(req.text, "html.parser")
# crawling 함수의 결과를 출력
print(crawling(soup))
if __name__ == "__main__" :
main()
>>>
구글 개발자 도구에서 리뷰의 제목들을 클릭해서 HTML 확인. 리뷰의 제목이 어느 태그에 속하고 있는지 확인. 제목은 <strong> 태그 사이에 있고, 이 <strong>태그를 <a>태그와 <li> 태그가 담고 있고, 각각의 영화평들 <li> 태그들은 <ul> 태그에 속해있어. 이 <ul> 태그에 접근해서 <li> 태그 -> <strong> 태그 순으로 접근.
def crawling(soup) :
# soup 객체에서 추출해야 하는 정보를 찾고 반환
ul = soup.find("ul", class_="rvw_list_area")
for li in ul.find_all("li"):
print(li.find("strong").get_text())
return None
이제 result라는 리스트를 만든 다음에 값들을 넣어줘.
def crawling(soup) :
# soup 객체에서 추출해야 하는 정보를 찾고 반환
ul = soup.find("ul", class_="rvw_list_area")
result = []
for li in ul.find_all("li"):
result.append(li.find("strong").get_text())
return result
최종 코드
import requests
from bs4 import BeautifulSoup
def crawling(soup) :
# soup 객체에서 추출해야 하는 정보를 찾고 반환
ul = soup.find("ul", class_="rvw_list_area")
result = []
for li in ul.find_all("li"):
result.append(li.find("strong").get_text())
return result
def main() :
custom_header = {
'referer' : 'https://movie.naver.com/',
'user-agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'
}
url = "https://movie.naver.com/movie/bi/mi/review.nhn?code=168058#"
req = requests.get(url, headers = custom_header)
soup = BeautifulSoup(req.text, "html.parser")
# crawling 함수의 결과를 출력
print(crawling(soup))
if __name__ == "__main__" :
main()
728x90
반응형
'Python > 크롤링' 카테고리의 다른 글
파이썬 크롤링 - HTML 태그 속성 (0) | 2021.06.27 |
---|---|
파이썬 크롤링 - 쿼리 개념 (0) | 2021.06.26 |
파이썬 크롤링 - 간단한 실습 : 네이트 판 댓글 수집 (1) | 2021.06.25 |
파이썬 크롤링 - 간단한 실습 : 벅스뮤직 음원차트 추출 (0) | 2021.06.23 |
파이썬 크롤링 - 간단한 실습 : 네이버 뉴스 헤드라인 추출 (0) | 2021.06.22 |
파이썬 크롤링 - 간단한 실습 : 네이버 헤드 뉴스 찾기 (0) | 2021.06.21 |
파이썬 크롤링 - BeautifulSoup 기본 개념 (0) | 2021.06.21 |
댓글