Python 汤。查找返回“;无”;只是有时候?

Python 汤。查找返回“;无”;只是有时候?,python,beautifulsoup,Python,Beautifulsoup,我正在浏览亚马逊的产品页面,并使用BeautifulSoup查找产品名称和价格。由于某些原因,“title”变量有时会返回,而有时我会得到错误,“'NoneType'对象没有属性'get_text'” 出现此错误“非类型”对象没有属性“get\u text”,因为网页的数据正在更改,没有属性具有id=“productTitle”,或者没有属性具有id=“priceblock\u ourprice” 放一些这样的调试语句,你就会知道为什么会出现这个错误 soup = BeautifulSoup(p

我正在浏览亚马逊的产品页面,并使用BeautifulSoup查找产品名称和价格。由于某些原因,“title”变量有时会返回,而有时我会得到错误,“'NoneType'对象没有属性'get_text'”


出现此错误
“非类型”对象没有属性“get\u text”
,因为网页的数据正在更改,没有属性具有
id=“productTitle”
,或者没有属性具有
id=“priceblock\u ourprice”

放一些这样的调试语句,你就会知道为什么会出现这个错误

soup = BeautifulSoup(page.content, 'html.parser')
print(soup)

title_soup = soup.find(id="productTitle")
print(title_soup) # <- this might print None
print(title_soup.get_text())
price_soup = soup.find(id="priceblock_ourprice")
print(price_soup) # <- this might print None
print(price_soup.get_text())
soup=BeautifulSoup(page.content,'html.parser')
印花(汤)
title\u soup=soup.find(id=“productTitle”)

打印(title_soup)#尝试指定更多HTTP头,例如
用户代理
接受语言
。另外,将解析器更改为
lxml
html5lib

import requests
from bs4 import BeautifulSoup


headers = {
    'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0',
    'Accept-Language': 'en-US,en;q=0.5'
}

URL = 'https://www.amazon.com/Lenovo-ThinkPad-i5-10210U-i7-7500U-Wireless/dp/B08BYZD4H9/ref=sr_1_2_sspa?dchild=1&keywords=thinkpad&qid=1595377662&sr=8-2-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUEyMVhTU1BOODg5TlgmZW5jcnlwdGVkSWQ9QTAzMTc5MDFMNjhGMUE0VlRHT1gmZW5jcnlwdGVkQWRJZD1BMDY3MDc3MzJPQzc2QkI5UlcwSUEmd2lkZ2V0TmFtZT1zcF9hdGYmYWN0aW9uPWNsaWNrUmVkaXJlY3QmZG9Ob3RMb2dDbGljaz10cnVl'

page = requests.get(URL, headers=headers)
soup = BeautifulSoup(page.content, 'lxml')  # <-- change to `lxml` or `html5lib`

title = soup.find(id="productTitle").get_text(strip=True)
price = soup.find(id="priceblock_ourprice").get_text(strip=True)
converted_price = int(price[1:6].replace(',',''))

print(converted_price)
print(title)

“有时”是什么意思?您是否重复尝试同一个url?发生这种情况时,BeautifulSoup无法找到#productTitle。标题是一个没有内容的非类型对象,看起来像是lxml完成了任务。谢谢
import requests
from bs4 import BeautifulSoup


headers = {
    'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0',
    'Accept-Language': 'en-US,en;q=0.5'
}

URL = 'https://www.amazon.com/Lenovo-ThinkPad-i5-10210U-i7-7500U-Wireless/dp/B08BYZD4H9/ref=sr_1_2_sspa?dchild=1&keywords=thinkpad&qid=1595377662&sr=8-2-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUEyMVhTU1BOODg5TlgmZW5jcnlwdGVkSWQ9QTAzMTc5MDFMNjhGMUE0VlRHT1gmZW5jcnlwdGVkQWRJZD1BMDY3MDc3MzJPQzc2QkI5UlcwSUEmd2lkZ2V0TmFtZT1zcF9hdGYmYWN0aW9uPWNsaWNrUmVkaXJlY3QmZG9Ob3RMb2dDbGljaz10cnVl'

page = requests.get(URL, headers=headers)
soup = BeautifulSoup(page.content, 'lxml')  # <-- change to `lxml` or `html5lib`

title = soup.find(id="productTitle").get_text(strip=True)
price = soup.find(id="priceblock_ourprice").get_text(strip=True)
converted_price = int(price[1:6].replace(',',''))

print(converted_price)
print(title)
1049
2020 Lenovo ThinkPad E15 15.6 Inch FHD 1080P Laptop| Intel 4-Core i5-10210U (Beats i7-7500U)| 16GB RAM| 1TB SSD (Boot) + 500GB HDD| FP Reader| Win10 Pro+ NexiGo Wireless Mouse Bundle