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

如何从亚马逊指定页面正确抓取目标网站链接

亚马逊搜索页链接爬取调整方案

问题核心原因

  • 你定义了请求头但没有传入requests.get()方法,请求使用requests默认UA被亚马逊识别为爬虫,返回反爬拦截页面而非正常搜索结果页,因此只能抓取到极少链接
  • 未对链接做精准筛选,会捕获大量无关的导航、广告、页面功能类链接
  • 默认的html.parser解析器对亚马逊复杂页面的解析兼容性较差,容易出现元素遗漏

调整后可运行代码

需要先安装依赖:

pip install requests beautifulsoup4 lxml

完整代码如下:

import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin

base_url = "https://www.amazon.com"
target_url = "https://www.amazon.com/s?rh=n%3A1069242&fs=true&ref=lp_1069242_sar"
headers ={
    # 建议更新为你当前浏览器的真实UA,降低被拦截概率
    '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'
}

# 传入headers参数发起请求
r = requests.get(target_url, headers=headers, timeout=10)

if r.status_code == 200:
    # 用lxml解析器提升解析兼容性
    soup = BeautifulSoup(r.content, 'lxml')
    # 精准定位搜索结果商品链接,过滤无关元素
    for link in soup.find_all('a', class_='a-link-normal s-no-outline', href=True):
        # 把相对链接拼接为可直接访问的绝对链接
        full_link = urljoin(base_url, link['href'])
        # 仅保留商品链接(亚马逊商品链接统一带/dp/字段)
        if '/dp/' in full_link:
            print(full_link)
else:
    print(f"请求被拦截,状态码:{r.status_code},可尝试更新UA或添加Cookie参数")

额外优化提示

如果调整后仍出现请求被拦截的情况,可以在请求头中添加你自己浏览器访问亚马逊时的Cookie字段,或切换代理IP即可正常获取内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:15:00