我想在文章标签里找到一个div。这是我的代码直到崩溃:
chart = soup.find('div',{'class':"chart-data"})
for divTag in chart.find_all('div'):
for articleTag in divTag.find_all('article'):
savedSpans[1]=str(articleTag.get('id'))[4:]
print savedSpans[1]
FirstDiv=articleTag.find("div",{'class':'row-primary'})
print 'articleTag', type(articleTag)
print 'FirstDiv', type(FirstDiv)
SecondDiv=FirstDiv.find("div",{'class':'row-title'})
这是输出。出于某种原因,在print'FirstDiv'行和SecondDiv=行之前,print命令会重复,“FirstDiv”变量会丢失其值。还有想法?你知道吗
1
articleTag <class 'bs4.element.Tag'>
FirstDiv <class 'bs4.element.Tag'>
articleTag <class 'bs4.element.Tag'>
FirstDiv <type 'NoneType'>
以下是错误消息:
Traceback (most recent call last):
File "billboardscrape.py", line 26, in <module>
SecondDiv=FirstDiv.find("div",{'class':'row-title'})
AttributeError: 'NoneType' object has no attribute 'find'
首先,如果程序正在崩溃,我们需要看到错误语句。你知道吗
您正在遍历所有div元素:
对于每个div元素,您将遍历所有名为“article”的元素。你知道吗
好的,所以articleTag表示在当前被迭代的Div元素中找到的当前“article”标记。你知道吗
然后将变量FirstDiv设置为在articleTag中搜索class:row primary。你知道吗
第二个articleTag似乎不包含任何类行primary的元素,因此返回值为None。i、 e FirstDiv=无
然后运行:
这会导致一个错误,因为前面提到的FirstDiv是None(即找不到)。你知道吗
在运行SecondDiv=。。。您需要检查FirstDiv是否等于None,如果FirstDiv等于None,您就知道不要对此变量运行.find方法。你知道吗
通过在我的标记标识符中更具体的方式修复了它:
相关问题 更多 >
编程相关推荐