[英]AttributeError: 'NoneType' object has no attribute 'strip' jupyter notebook
[英]AttributeError: 'NoneType' object has no attribute 'strip'
我一直在努力學習Python(目前的請求和beautifulsoup4),我在網上找到了一個教程
問題是我一直得到以下錯誤,根本無法搞清楚...
任何幫助,將不勝感激!
回溯(最近一次調用最后一次):文件“C:\\ Users \\ BillyBob \\ Desktop \\ Web Scrap.py”,第14行,標題= a.string.strip()AttributeError:'NoneType'對象沒有屬性'strip'
這是我的代碼,以防我犯了錯誤;
import requests
from bs4 import BeautifulSoup
result = requests.get("http://www.oreilly.com/")
c = result.content
soup = BeautifulSoup(c, "html.parser")
samples = soup.find_all("a")
samples[0]
data = {}
for a in samples:
title = a.string.strip()
data[title] = a.attrs['href']
從BS4文檔 :
如果一個標簽包含多個東西,那么不清楚.string應該引用什么,所以.string被定義為None
我相信你可以使用.text
來獲得你想要的東西:
title = a.text.strip()
samples
的第一個成員沒有字符串屬性,因此, a.string
不返回任何內容,因此您在不存在的內容上調用strip()
方法。
但是,那你還有另一個問題; a
具有href
屬性不一定是真的。 相反,你應該明確檢查兩者,否則你會得到錯誤(這是Yevhen的答案的問題,否則是正確的)。
解決問題的一個可能方法是:
for a in samples:
if not a.string is None:
title = a.string.strip()
if 'href' in a.attrs.keys():
data[title] = a.attrs['href']
這樣,在調用關聯方法之前,會顯式檢查每個參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.