私はPython Webコースを開始しましたが、私はBeautifulSoupを使用してHTMLデータを解析しようとしていました。私は研究しましたが、正確で特定の解決策を見つけることができませんでした。だからここにコードの一部です:AttributeError: 'NoneType'オブジェクトに属性 'text'がありません - Python、BeautifulSoup Error
import requests
from bs4 import BeautifulSoup
request = requests.get("http://www.johnlewis.com/toms-berkley-slipper-grey/p3061099")
content = request.content
soup = BeautifulSoup(content, 'html.parser')
element = soup.find(" span", {"itemprop ": "price ", "class": "now-price"})
string_price = (element.text.strip())
print(int(string_price))
# <span itemprop="price" class="now-price"> £40.00 </span>
そして、これは私が直面しているエラーです:
C:\Users\IngeniousAmbivert\venv\Scripts\python.exe
C:/Users/IngeniousAmbivert/PycharmProjects/FullStack/price-eg/src/app.py
Traceback (most recent call last):
File "C:/Users/IngeniousAmbivert/PycharmProjects/FullStack/price-eg/src/app.py", line 8, in <module>
string_price = (element.text.strip())
AttributeError: 'NoneType' object has no attribute 'text'
Process finished with exit code 1
任意の助けが必要ですこのも使用してCSSセレクタのように試すことができます
ありがとうございます。それはうまくいった。しかし、あなたが素晴らしいコードを作ることができたら。私が言及したように私はpythonの初心者と私はこの文を理解できませんでした:string_price =(element.get_text(strip = True).lstrip( "£"))。ありがとうございます –
@ user7338971絶対に。 '.get_text(strip = True)'は、要素のテキストを取得し、テキストの周りの余分な改行や空白をすべて取り除くのに役立ちます。通常は '.strip()'で行いますが、bs4には 'get_text ) 'メソッドを使用します。これは非常に便利です。その後、私たちはポンド記号を残しました。事がより明確になることを願っています。 – alecxe
私は本当に感謝しています。ご協力いただきありがとうございます 。それは有り難いです 。 –