python2.7 BeautifulSoup3.2.0 findAll报错
发布网友
发布时间:2022-05-02 00:03
我来回答
共1个回答
热心网友
时间:2022-05-11 04:53
AttributeError: 'NoneType' object has no attribute 'findAll'
意思是:
此处的top_div是个空值,即在Python中是None,所以是NodeType
对于一个None的值,当然没有对应的findAll的方法了
(只有正常的,非空的BeautifulSoup类型的变量才有此方法)
所以推出:
soup.find('div', {'id':'a'})
获得值top_div是空的
原因:
要么是你处理的html源码,此处即parser,得到的不是你真正想要的
要么是,你此处写的规则,即'div', {'id':'a'},有问题
(后来去该网站看了看其源码,根本就不存在
类似于
<div id="a">
的源码,所以很明显,你此处的规则是写错了)
才导致搜索出来的值,是空的。
另外,
针对于你说的:
top_div = soup.find('div', {'id':'a'})
“#注意:返回的是list对象”
我表示很怀疑。
因为本身BeautifulSoup类型变量去find的话,只会返回一个BeautifulSoup的对象
而不会是list。
这点是人家的find函数决定的,决定了返回值的类型不是list而是BeautifulSoup类型的变量。
你为何会说成list???
如果对于BeautifulSoup不熟悉,那可以参考我的教程:
搜:
【教程】Python中第三方的用于解析HTML的库:BeautifulSoup
即可找到。