python中的web抓取IMDb

2024-09-30 06:17:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在读哈佛大学的一门CS 109课程,但无法从数据库中250部投票最多的电影中获得收视率。我想我的问题是有两个td.ratingColumn,一个是评级的,另一个是——紧接着——要求你给电影评分。第二个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

Tags: inforby电影tagcontentmoviecs
1条回答
网友
1楼 · 发布于 2024-09-30 06:17:24

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

这应该是有效的:

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

如果我漏掉了什么就告诉我。在

相关问题 更多 >

    热门问题