python - 试图从亚马逊评论网址获取产品标题
问题描述
product_name = soup.findall("h1",{"class":"a-size-large a-text-ellipsis"})
我正在尝试获取页面上所有评论的产品标题。我尝试使用上面的代码,但出现“nonetype”错误。我代码中的其他属性确实有效。我在想我没有选择正确的课程。有没有人有从亚马逊抓取的经验,可以就我做错了什么提供一些建议?
解决方案
你可能有验证码页面。尝试指定不同的 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
推荐阅读
- automated-tests - UFT 在多个实例中执行应用程序
- javascript - 我无法在计算器的 num1 参数中添加两个字符
- angular - Docker 共享 node_modules 到主机
- sql - 更新整个数据库的主键
- kubernetes - Kubernetes 无法 ping 另一个服务
- typescript - 如何在 .csproj C# 项目中编译(“构建”)所有 TypeScript 文件?
- powerbi - DAX PowerBI:需要一整年的总计,同时按年初至今过滤表的其余部分
- node.js - 安慰 nodejs api 从消息假脱机队列中检索消息
- reactjs - 有没有一种有效的方法在 React Native 的无状态/功能组件中创建 onPress 事件处理程序?
- javascript - 在本机反应中使用 moment().diff() 后 this.state.age 变为空白