You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用BeautifulSoup爬取亚马逊客户评论为何返回空列表?

亚马逊评论爬虫返回空列表的问题解决

核心原因

  • 反爬拦截:亚马逊会识别非浏览器发起的请求,你直接调用requests.get(url)时没有携带必要的请求头,返回的是反爬验证页面而非真实商品页面,自然找不到目标标签。
  • 标签匹配偏差:部分亚马逊页面的评论标题标签不是div,而是span,原代码的选择器范围太窄。

修正代码

from bs4 import BeautifulSoup 
import requests
import pandas as pd

url = "https://www.amazon.in/Nike-Phantom-White-Light-Cream-Particle-Running/dp/B07HYZ2Q71/ref=sr_1_14?keywords=nike%2Brunning%2Bshoes%2Bfor%2Bwomen&qid=1662552658&sprefix=nike%2Brunning%2Caps%2C207&sr=8-14&th=1"

# 模拟浏览器请求头,绕过基础反爬
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
}

htmlContent = requests.get(url, headers=headers)
# 先确认请求状态,200代表请求成功
print(htmlContent.status_code)

soup = BeautifulSoup(htmlContent.content, "html.parser")

# 同时匹配div和span标签的review-title,扩大匹配范围
review_titles = soup.find_all(['div', 'span'], {"data-hook": "review-title"})
# 提取纯文本内容
clean_titles = [title.get_text(strip=True) for title in review_titles]
print(clean_titles)

后续注意事项

  • 不要高频发送请求,建议每次请求后添加time.sleep(2)之类的延迟,避免IP被封禁。
  • 亚马逊页面结构可能随时调整,若再次失效,需重新检查页面元素的标签和属性。
  • 若基础请求头仍无法绕过反爬,可尝试使用selenium模拟真实浏览器操作,但需遵守亚马逊的爬虫规则。

内容的提问来源于stack exchange,提问作者Prerk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 01:45:38