首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AttributeError:'NoneType‘对象没有属性'attrs’

AttributeError:'NoneType‘对象没有属性'attrs’
EN

Stack Overflow用户
提问于 2018-03-29 11:30:55
回答 3查看 9.2K关注 0票数 0

我对蟒蛇很陌生。请帮我解决这个错误。

代码语言:javascript
复制
AttributeError: 'NoneType' object has no attribute 'attrs'
代码语言:javascript
复制
from bs4 import BeautifulSoup
import urllib2
import requests

url = 'https://www.justdial.com/Pune/Event-Organisers/nct-10194150'

req = urllib2.Request(url, headers={'User-Agent' : "Magic Browser"}) 

page = urllib2.urlopen(req).read()

soup = BeautifulSoup(page,'html.parser')

for h in soup.findAll('h2'):
    a = h.find('a')

    if 'href' in a.attrs:
        l = a.get('href')

    print l
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-03-29 11:39:48

使用“尝试”--除非避免NoneType异常:

代码语言:javascript
复制
from bs4 import BeautifulSoup
import urllib2
import requests

url = 'https://www.justdial.com/Pune/Event-Organisers/nct-10194150'

req = urllib2.Request(url, headers={'User-Agent' : "Magic Browser"}) 

page = urllib2.urlopen(req).read()

soup = BeautifulSoup(page,'html.parser')

for h in soup.findAll('h2'):
    a = h.find('a')
    try:
        if 'href' in a.attrs:
            l = a.get('href')
    except:
        pass

    print l

OR:检查a是否为None:

代码语言:javascript
复制
from bs4 import BeautifulSoup
import urllib2
import requests

url = 'https://www.justdial.com/Pune/Event-Organisers/nct-10194150'

req = urllib2.Request(url, headers={'User-Agent' : "Magic Browser"}) 

page = urllib2.urlopen(req).read()

soup = BeautifulSoup(page,'html.parser')

for h in soup.findAll('h2'):
    a = h.find('a')

    if a is not None and 'href' in a.attrs:
        l = a.get('href')

    print l
票数 3
EN

Stack Overflow用户

发布于 2018-03-29 11:34:55

您应该不检查a元素。在a中似乎没有h2标签,因此a就是NoneType

代码语言:javascript
复制
if a and 'href' in a.attrs:
    l = a.get('href')
票数 3
EN

Stack Overflow用户

发布于 2018-03-29 11:39:18

您所检查的一些元素为None,您应该确保找到的"a“元素实际上具有attrs属性,您可以使用hasattr内置函数:

代码语言:javascript
复制
hasattr(a, "attrs")

如果有吸引,则返回true;如果没有,则返回false。阅读关于这一功能的文章

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

https://stackoverflow.com/questions/49554956

复制
相关文章

相似问题

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