我正在阅读旧的哈佛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
答案 0 :(得分:0)
正如您所指出的,由于第二个元素不包含标记,因此返回一个空数组,在尝试访问第一个元素时会引发IndexError
异常。
这应该有效:
if movie.by_tag('strong'):
# do stuff
如果我错过了什么,请告诉我。