作为学习数据分析的一部分,我正在尝试自己学习使用 Python 进行网络抓取。我正在尝试抓取imdb 网页。
我正在使用 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,也无法抓取评级。检查元素后(在 chrome 浏览器中),我无法找到可以让我使用与上面类似的代码的模式。
谁能帮我写一段代码,让我刮取电影ID和收视率?