用Python抓取IMDb数据

0 投票
1 回答
671 浏览
提问于 2025-04-19 05:46

我正在学习一门旧的哈佛CS 109课程,但我无法获取数据库中250部最受欢迎电影的评分。我觉得我的问题可能是因为有两个 td.ratingColumn,一个是显示评分的,另一个紧接着的是让你给电影评分的。第二个 td.ratingColumn 里面没有 </strong> 标签。这会导致我的错误吗?我该如何调整代码才能获取所有的评分?9.2是250部电影中的第1名。谢谢。

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

正如你所提到的,因为第二个元素里面没有这个标签,所以返回了一个空数组。当你试图访问第一个元素时,就会出现一个IndexError的错误。

这个代码应该可以正常工作:

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

如果我漏掉了什么,请告诉我。

撰写回答