我正在做一些Web抓取操作,在此期间,我遇到一个错误,指出“'NoneType'对象不可下标”

时间:2019-12-29 17:28:24

标签: python-3.x web-scraping beautifulsoup non-type

我正在使用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>
            &nbsp;&nbsp;-&nbsp;&nbsp;
            <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"] 任何建议将不胜感激。

0 个答案:

没有答案