Beauty Soup和Python的属性错误

Beauty Soup和Python的属性错误,python,python-2.7,web-scraping,beautifulsoup,Python,Python 2.7,Web Scraping,Beautifulsoup,我有一段工作代码,然后我今天运行它,它就坏了。我已经抽出了给我带来问题的相关部分 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

我有一段工作代码,然后我今天运行它,它就坏了。我已经抽出了给我带来问题的相关部分

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文档中的有效命令。 通过浏览网页的源代码,我到所需对象的路径似乎是有意义的

我想网站一定发生了变化,因为我不知道我的代码怎么会停止工作。但是我不太理解错误信息


谢谢你能给我的帮助

这是因为当您尝试访问该页面时,它会拒绝您的
权限
,因此
soup.find()
不会返回任何
None
,并且
None
没有
find\u all()
属性,这会给您一个
AttributeError

from bs4 import BeautifulSoup
import requests

webpage = requests.get('http://www.bbcgoodfood.com/search/recipes?query=')


print webpage.content
<HTML><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>

You don't have permission to access "http&#58;&#47;&#47;www&#46;bbcgoodfood&#46;com&#47;search&#47;recipes&#63;" on this server.<P>
Reference&#32;&#35;18&#46;4fa9cd17&#46;1428789762&#46;680369dc
</BODY>
</HTML>

这是因为当您尝试访问该页面时,它会拒绝您的
权限
,因此
soup.find()
不会返回任何
None
,并且
None
没有
find\u all()
属性,这会给您一个
AttributeError

from bs4 import BeautifulSoup
import requests

webpage = requests.get('http://www.bbcgoodfood.com/search/recipes?query=')


print webpage.content
<HTML><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>

You don't have permission to access "http&#58;&#47;&#47;www&#46;bbcgoodfood&#46;com&#47;search&#47;recipes&#63;" on this server.<P>
Reference&#32;&#35;18&#46;4fa9cd17&#46;1428789762&#46;680369dc
</BODY>
</HTML>

这是因为当您尝试访问该页面时,它会拒绝您的
权限
,因此
soup.find()
不会返回任何
None
,并且
None
没有
find\u all()
属性,这会给您一个
AttributeError

from bs4 import BeautifulSoup
import requests

webpage = requests.get('http://www.bbcgoodfood.com/search/recipes?query=')


print webpage.content
<HTML><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>

You don't have permission to access "http&#58;&#47;&#47;www&#46;bbcgoodfood&#46;com&#47;search&#47;recipes&#63;" on this server.<P>
Reference&#32;&#35;18&#46;4fa9cd17&#46;1428789762&#46;680369dc
</BODY>
</HTML>

这是因为当您尝试访问该页面时,它会拒绝您的
权限
,因此
soup.find()
不会返回任何
None
,并且
None
没有
find\u all()
属性,这会给您一个
AttributeError

from bs4 import BeautifulSoup
import requests

webpage = requests.get('http://www.bbcgoodfood.com/search/recipes?query=')


print webpage.content
<HTML><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>

You don't have permission to access "http&#58;&#47;&#47;www&#46;bbcgoodfood&#46;com&#47;search&#47;recipes&#63;" on this server.<P>
Reference&#32;&#35;18&#46;4fa9cd17&#46;1428789762&#46;680369dc
</BODY>
</HTML>

您试图解析的站点不“喜欢”您的用户代理并返回403错误,然后解析器失败,因为它找不到
div
。尝试将用户代理更改为以下浏览器之一的用户代理:

webpage = requests.get('http://www.bbcgoodfood.com/search/recipes?query=', headers = {'user-agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'})

您试图解析的站点不“喜欢”您的用户代理并返回403错误,然后解析器失败,因为它找不到
div
。尝试将用户代理更改为以下浏览器之一的用户代理:

webpage = requests.get('http://www.bbcgoodfood.com/search/recipes?query=', headers = {'user-agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'})

您试图解析的站点不“喜欢”您的用户代理并返回403错误,然后解析器失败,因为它找不到
div
。尝试将用户代理更改为以下浏览器之一的用户代理:

webpage = requests.get('http://www.bbcgoodfood.com/search/recipes?query=', headers = {'user-agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'})

您试图解析的站点不“喜欢”您的用户代理并返回403错误,然后解析器失败,因为它找不到
div
。尝试将用户代理更改为以下浏览器之一的用户代理:

webpage = requests.get('http://www.bbcgoodfood.com/search/recipes?query=', headers = {'user-agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'})

这是否意味着他们那边的人对我使用这个网站有反应?谢谢你的帮助-我需要找个地方更多地了解这一点,因为我真的不明白你在说什么done@Jacobadtr,是和否,许多Web服务器(或其防火墙等)会自动拒绝可疑用户代理的请求,以避免机器人扫描等。他们如何收集和使用统计数据是另一个问题。如果你想学习网络爬虫,维基百科或w3c是一个很好的起点。这是否意味着有人对我使用网站的行为有反应?谢谢你的帮助-我需要找个地方更多地了解这一点,因为我真的不明白你在说什么done@Jacobadtr,是和否,许多Web服务器(或其防火墙等)会自动拒绝可疑用户代理的请求,以避免机器人扫描等。他们如何收集和使用统计数据是另一个问题。如果你想学习网络爬虫,维基百科或w3c是一个很好的起点。这是否意味着有人对我使用网站的行为有反应?谢谢你的帮助-我需要找个地方更多地了解这一点,因为我真的不明白你在说什么done@Jacobadtr,是和否,许多Web服务器(或其防火墙等)会自动拒绝可疑用户代理的请求,以避免机器人扫描等。他们如何收集和使用统计数据是另一个问题。如果你想学习网络爬虫,维基百科或w3c是一个很好的起点。这是否意味着有人对我使用网站的行为有反应?谢谢你的帮助-我需要找个地方更多地了解这一点,因为我真的不明白你在说什么done@Jacobadtr,是和否,许多Web服务器(或其防火墙等)会自动拒绝可疑用户代理的请求,以避免机器人扫描等。他们如何收集和使用统计数据是另一个问题。如果你想学习网络爬虫,维基百科或w3c是一个很好的起点。