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

使用Guzzle访问亚马逊返回403 Forbidden错误求助

解决CloudFront拒绝亚马逊请求的问题

这种CloudFront拦截请求的情况我碰到过好多次,大概率是触发了亚马逊的反爬机制——他们对自动化访问的管控真的很严。咱们一步步来拆解问题和解决办法:

1. 补全请求头,模拟真实浏览器

CloudFront会校验请求头的“人类特征”,你的请求大概率缺了关键的头信息。建议添加这些字段:

  • User-Agent:用真实的浏览器UA,比如Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36
  • Accept-Language:比如en-US,en;q=0.9
  • Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
  • Referer:设为亚马逊首页https://www.amazon.com/

修改后的代码示例:

$response = $client->get($url, [
    'proxy' => 'http://someproxy',
    'timeout' => 10,
    'cookies' => $jar,
    '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-Language' => 'en-US,en;q=0.9',
        'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'Referer' => 'https://www.amazon.com/'
    ]
]);

2. 检查代理的有效性

你用的http://someproxy可能已经被亚马逊拉黑了,试试这些调整:

  • 换成高匿代理(别用透明代理,会泄露真实IP)
  • 优先选住宅IP代理(更接近真实用户的IP类型),而非数据中心IP
  • 先手动测试代理能不能正常打开目标亚马逊搜索页

3. 优化Cookie会话管理

亚马逊靠Cookie追踪会话状态,你的$jar可能是空的或者无效。建议:

  • 先请求亚马逊首页,获取初始Cookie后再发起搜索请求
  • 保持会话连贯性,别频繁更换IP或清空Cookie

4. 添加请求延迟

自动化请求频率太高会直接触发拦截,建议在请求之间加1-3秒的随机延迟:

sleep(rand(1,3)); // 每次请求前等待随机时长

5. 合规提醒

最后得说一句:亚马逊的服务条款禁止未经授权的爬虫行为,如果是商业用途,最好用官方的Product Advertising API来获取数据,既合规又稳定,省得跟反爬机制斗智斗勇。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:29:03