Python:AttributeError:'ResultSet'对象没有属性'get'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python:AttributeError:'ResultSet'对象没有属性'get'相关的知识,希望对你有一定的参考价值。

当我尝试从网站上刮取一个值并将其放入有效负载请求时,我收到错误:

AttributeError: 'ResultSet' object has no attribute 'get'

这是我的代码:

resumeURL='url'
response=self.session.get(resumeURL,headers=headers)
soup=BeautifulSoup(response.content, "html.parser")

product=soup.find_all('input',{'name':'_CsrfToken', 'type':'hidden'})
payload = {
    '_CsrfToken':product.get('value')

当我将find_all更改为find时,我收到错误:

AttributeError: 'NoneType' object has no attribute 'get'

我究竟做错了什么?

答案

从美丽的汤documentation直接采取:

AttributeError:'ResultSet'对象没有属性'foo' - 这通常是因为您希望find_all()返回单个标记或字符串。但是find_all()返回一个标签和字符串列表 - 一个ResultSet对象。您需要遍历列表并查看每个列表的.foo。或者,如果您真的只想要一个结果,则需要使用find()而不是find_all()。

因此,如果您想要所有结果 - 而不仅仅是那个 - 您需要迭代所有ResultSet(例如product)并查找每个结果的.get。所以类似于:

for val in product:
  #check the val.get('value') for each member of list
  print val.get('value')
另一答案

我认为get方法应该在ResultSet的一个元素中使用(而不是在整个集合中)。我的意思是,你在哪里:

product.get('value')

尝试:

product[0].get('value')

以上是关于Python:AttributeError:'ResultSet'对象没有属性'get'的主要内容,如果未能解决你的问题,请参考以下文章

AttributeError:类型对象 x 没有属性 y 以及与 Python 3.4 的其他一些不一致 [关闭]

Python 3 urllib json AttributeError:“HTTPResponse”对象没有属性“type”

AttributeError:模块'tensorflow'在更新后没有属性'python'错误

python sklearn pipiline fit:“AttributeError:未找到下限”

Windows 上的 Python DEAP 和多处理:AttributeError

python manage.py runserver:AttributeError:“模块”对象没有属性“选择”