簡體   English   中英

美麗的湯和Python導致的屬性錯誤

[英]Attribute Error With Beautiful Soup And Python

我有一段有效的代碼,然后我今天運行了它,但它壞了。 我已經刪除了給我帶來麻煩的相關部分。

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"]) 

這給我一個錯誤“屬性錯誤:'NoneType'對象沒有屬性'find_all'”

這個錯誤告訴我什么呢?

find_all()是漂亮的湯文檔中的有效命令。 通過瀏覽網頁的源代碼,我通往所需對象的路徑似乎很有意義。

我認為該網站一定有所更改,因為我看不到我的代碼將如何停止工作。 但是我不太理解錯誤消息...

謝謝你提供的所有幫助!

您嘗試解析的站點不喜歡您的用戶代理,並返回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'})

這是因為,當您嘗試訪問該頁面時,它會給您permission denied ,因此soup.find() None返回None ,並且None沒有find_all()AttributeError ,這會給您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>

如果您通過添加帶有適當用戶代理(如建議的@Vader)的標頭來解決此問題,則代碼將正常運行:

...
headers = {'User-agent': 'Mozilla/5.0'}
webpage = requests.get('http://www.bbcgoodfood.com/search/recipes?query=', headers=headers)

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"])

/recipes/4942/lemon-drizzle-cake
/recipes/3092/ultimate-chocolate-cake
/recipes/3228/chilli-con-carne
/recipes/3229/yummy-scrummy-carrot-cake
/recipes/1223/bestever-brownies
/recipes/1167651/chicken-and-chorizo-jambalaya
/recipes/2089/spiced-carrot-and-lentil-soup
/recipes/1521/summerinwinter-chicken
/recipes/1364/spicy-root-and-lentil-casserole
/recipes/4814/mustardstuffed-chicken
/recipes/4622/classic-scones-with-jam-and-clotted-cream
/recipes/333614/red-lentil-chickpea-and-chilli-soup
/recipes/5605/falafel-burgers
/recipes/11695/raspberry-bakewell-cake
/recipes/4686/chicken-biryani

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM