簡體   English   中英

AttributeError:'NoneType'對象沒有屬性'strip'

[英]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.

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