我有一段代码,但今天我运行它,它就坏了。我已经把给我带来问题的相关部分撤了出来。在
from bs4 import BeautifulSoup
import requests
webpage = requests.get('http://www.bbcgoodfood.com/search/recipes?query=')
soup = BeautifulSoup(webpage.content)
links = soup.find("div",{"class":"main row grid-padding"}).find_all("h2",{"class":"node-title"})
for link in links:
print(link.a["href"])
这给了我一个错误“Attribute error:'NoneType'对象没有属性'find'all'”
这个错误到底在告诉我什么?在
find_all()是beautiful soup文档中的有效命令。 浏览网页的源代码,我找到我想要的对象的路径似乎是有意义的。在
我想这个网站一定有什么变化,因为我不明白我的代码怎么会停止工作。但我不太明白错误信息。。。在
谢谢你的帮助!在
这是因为当您试图访问该页时,它给您}的属性,这会给您一个
permission denied
,因此soup.find()
不返回None
,None
没有{AttributeError
。在如果您通过添加带有适当用户代理(如@Vader建议的)的头来解决此问题,则代码将正常运行:
^{pr2}$您尝试分析的站点不“喜欢”您的用户代理,并返回403错误,然后解析器失败,因为它找不到
div
。尝试将用户代理更改为以下浏览器之一的用户代理:相关问题 更多 >
编程相关推荐