我正在使用bs4进行网页抓取。这是我正在抓取的html代码。
items
是这些多个div标签的列表,即<div class="list_item odd" itemscope=""...>
我真正希望从items
元素中的每个元素获取的标签是:
<p class="cert-runtime-genre">
<img title="R" alt="Certificate R" class="absmiddle certimage" src="https://m...>
<time datetime="PT119M">119 min</time>
-
<span>Drama</span>
<span class="ghost">|</span>
<span>War</span>
</p>
此列表的main
类保存在items
中。由此,我想抓取img
标签,然后访问title
属性,以便可以将电影的所有证书保存在数据库中,例如R或PG等。但是当我将循环应用于items
给出一个错误,指出items
无法下标。我尝试了列表解析,简单的for循环,通过预定义的整数数组调用了items
元素,但没有任何效果,并且仍然给出相同的错误。 (items
不是Null,并且可以下标,即为列表)。但是,当我使用直接整数来调用它时,它可以正常工作,例如items[0]
或items[1]
等,并为items
列表中的每个对应元素给出正确的结果。错误行如下:
cert = [item.find(class_ = "absmiddle certimage")["title"] for item in items]
或
cert = [item.find("img",{"class": "absmiddle certimage"})["title"] for item in items]
这是很好的方法:cert = items[0].find(class_ = "absmiddle certimage")["title"]
任何建议将不胜感激。