web抓取python中的IMDb

时间:2014-09-01 15:19:56

标签: python html css web-scraping

我正在阅读旧的哈佛CS 109课程,无法获得数据库中最多投票的250部电影的评分。我认为我的问题是有两个td.ratingColumn s,一个有评级,另一个 - 正好在之后 - 要求你评价电影。第二个td.ratingColumn不包含</strong>。这会给我我的错误吗?如何调整代码以获得所有评级? 9.2是1/250。感谢。

dom = web.Element(r.text)

for movie in dom.by_tag('td.ratingColumn'): 
    rating = runtime.by_tag('strong')[0].content 
    print rating

9.2
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-9-ca9164c76716> in <module>()
      2 
      3 for movie in dom.by_tag('td.ratingColumn'):
----> 4     rating = movie.by_tag('strong')[0].content
      5     print rating

IndexError: list index out of range

1 个答案:

答案 0 :(得分:0)

正如您所指出的,由于第二个元素不包含标记,因此返回一个空数组,在尝试访问第一个元素时会引发IndexError异常。

这应该有效:

if movie.by_tag('strong'):
    # do stuff

如果我错过了什么,请告诉我。