用Python抓取IMDb数据
我正在学习一门旧的哈佛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
如果我漏掉了什么,请告诉我。