当我尝试从网站抓取一个值并将其放入有效负载请求时,我收到错误:
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'
我做错了什么?
答案 0 :(得分:1)
直接从美丽的汤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')
答案 1 :(得分:0)
我认为get方法应该在ResultSet的一个元素中使用(而不是在整个集合中)。我的意思是,你在哪里:
product.get('value')
尝试:
product[0].get('value')