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

亚马逊多页评论爬取仅返回第一页数据问题求助

亚马逊德国站评论爬取后续页面无数据的原因及解决方法

可能原因

  • 反爬机制升级:亚马逊近期大概率更新了反爬策略,之前的静态爬取方式不再适用。比如对请求头的完整性校验更严格,或者后续页面的评论改为AJAX异步加载,静态HTML中不再包含评论数据。
  • 分页链接失效:你手动构造的第2-4页URL可能缺少亚马逊新增的临时验证参数(如会话ID、CSRF令牌),服务器直接拒绝返回有效内容。两个月前的分页规则已被废弃。
  • 请求触发拦截:即使第一页请求成功,后续请求的频率或特征被判定为爬虫,服务器返回空数据作为拦截响应。

解决方法

  • 完善请求头信息:模拟真实浏览器的请求头,从亚马逊德国站的浏览器请求中复制完整的User-Agent、Accept、Accept-Language、Referer和Cookie字段,替换你当前的headers。示例代码:
import requests
from bs4 import BeautifulSoup

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',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Accept-Language': 'de-DE,de;q=0.8,en-US;q=0.5,en;q=0.3',
    'Referer': 'https://www.amazon.de/dp/[你的产品ASIN]',
    'Cookie': '从浏览器亚马逊站点请求中复制完整Cookie'
}

url = "https://www.amazon.de/dp/[你的产品ASIN]/ref=cm_cr_arp_d_viewopt_srt?ie=UTF8&reviewerType=all_reviews&sortBy=recent&pageNumber=2"
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
  • 动态提取分页链接:不要手动构造分页URL,从第一页的HTML中解析出官方的下一页链接。比如查找包含"${Nächste Seite}"(德语“下一页”)文本的a标签,获取其href属性拼接成完整URL,保证参数有效性。
  • 控制请求频率:在每次请求后添加随机延迟(如time.sleep(random.uniform(2, 5))),避免短时间内高频请求。如果仍被拦截,尝试使用代理IP轮换,分散请求来源。
  • 改用动态渲染工具:如果评论是通过JavaScript动态加载的,使用Selenium或Playwright模拟完整浏览器环境,等待页面渲染完成后再提取评论数据。
  • 考虑官方API:如果业务允许,使用亚马逊Product Advertising API合法获取评论数据,从根源上规避反爬限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:07:21