데이터 분석을 배우기위한 노력의 일환으로 Python을 사용하여 웹 스크랩 핑을 배우려고합니다. URL이 다음과 같은 imdb 웹 페이지를 긁으려고합니다. http://www.imdb.com/search/title?sort=num_votes,desc&start=1&title_type=feature&year=1950,2012
BeautifulSoup 모듈을 사용하고 있습니다. 다음은 사용중인 코드입니다.
r = requests.get(url) # where url is the above url
bs = BeautifulSoup(r.text)
for movie in bs.findAll('td','title'):
title = movie.find('a').contents[0]
genres = movie.find('span','genre').findAll('a')
genres = [g.contents[0] for g in genres]
runtime = movie.find('span','runtime').contents[0]
year = movie.find('span','year_type').contents[0]
print title, genres,runtime, rating, year
다음과 같은 결과가 나타납니다.
The Shawshank Redemption [u'Crime', u'Drama'] 142 mins. (1994)
이 코드를 사용하여 제목, 장르, 런타임 및 연도를 긁을 수는 있지만 imdb 영화 ID 나 등급을 긁을 수는 없습니다. 크롬 브라우저에서 요소를 검사 한 후 위와 유사한 코드를 사용할 수있는 패턴을 찾을 수 없습니다.
아무도 영화 ID와 등급을 긁어 낼 수있는 코드를 작성하도록 도와 줄 수 있습니까?
rating
정의되지 않았 으므로 실패합니다 . 이를 수정하면from BeautifulSoup import BeautifulSoup
, 및을 추가 할 수도 있습니다import requests
. 왜 보여url="http://etc"
주지 않아도 되나요?