product_name = soup.findall("h1",{"class":"a-size-large a-text-ellipsis"})
我正在尝试获取页面上所有评论的产品标题。我尝试使用上面的代码,但是出现“ nonetype”错误。我的代码中其余的属性都可以正常工作。我在想我选错了正确的课程。有没有人有过从亚马逊刮刮的经验,能够为我做错事情提供一些建议?
答案 0 :(得分:1)
您可能获得了验证码页面。尝试指定不同的HTTP标头(在我的情况下为User-Agent
和Accept-Language
):
import requests
from bs4 import BeautifulSoup
url = 'https://www.amazon.com/Marmot-womens-Precip-Lightweight-Waterproof/product-reviews/B086YML34N/ref=cm_cr_dp_d_show_all_btm?ie=UTF8&reviewerType=all_reviews'
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0',
'Accept-Language': 'en-US,en;q=0.5'}
soup = BeautifulSoup(requests.get(url, headers=headers).content, 'html.parser')
print(soup.select_one('h1.a-size-large.a-text-ellipsis').text)
打印:
Marmot womens Precip Lightweight Waterproof Rain Jacket
答案 1 :(得分:1)
是b'coz,bs4中没有findall
。它是find_all
或findAll
(大写A)。