首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python-BeautifulSoup4:标签变量丢失了吗?

Python-BeautifulSoup4:标签变量丢失了吗?
EN

Stack Overflow用户
提问于 2015-09-22 18:20:30
回答 2查看 69关注 0票数 0

我试着找到一个div里面的一个div在一个文章标签中。下面是我的代码,直到它崩溃:

代码语言:javascript
复制
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'})

这是输出。由于某种原因,在打印'FirstDiv‘行和SecondDiv=行之前,打印命令会被重复,而"FirstDiv“变量会丢失它的值。还有想法?

代码语言:javascript
复制
1
articleTag <class 'bs4.element.Tag'>
FirstDiv <class 'bs4.element.Tag'>

articleTag <class 'bs4.element.Tag'>
FirstDiv <type 'NoneType'>

以下是错误消息:

代码语言:javascript
复制
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'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-26 18:56:59

通过在我的标记标识符中更具体地修正它:

代码语言:javascript
复制
chart = soup.find('div',{'class':"chart-data"})
    for divTag in chart.find_all('div', {'class':"container"}):
        for articleTag in divTag.find_all('article',{'class':"chart-row"}):
            savedSpans[1]=str(articleTag.get('id'))[4:]
票数 0
EN

Stack Overflow用户

发布于 2015-09-22 18:33:04

首先,如果程序崩溃,我们需要看到错误声明。

您正在遍历所有div元素:

代码语言:javascript
复制
for divTag in chart.find_all('div'):

对于每个div元素,您将遍历所有标题为“文章”的元素。

代码语言:javascript
复制
for articleTag in divTag.find_all('article'):

好的,所以articleTag表示正在迭代的当前Div元素中找到的当前“文章”标记。

然后将变量FirstDiv设置为在articleTag中搜索类: row-primary。

第二个articleTag似乎不包含任何包含类行主元素的元素,因此返回为None。即FirstDiv =无

然后运行以下命令:

代码语言:javascript
复制
SecondDiv=FirstDiv.find("div",{'class':'row-title'})

这会导致错误,因为正如前面提到的,FirstDiv为None (即找不到)。

在运行SecondDiv=之前。您需要检查FirstDiv是否等于None,如果FirstDiv等于None,您知道不要在这个变量上运行.find方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32724110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档