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

Selenium无头模式爬取亚马逊时Sponsored Brand元素缺失如何解决

核心原因

亚马逊内置反爬特征检测机制,旧版Chrome无头模式存在大量可被识别的独有特征,会被亚马逊判定为自动化爬虫,因此拦截或不返回Sponsored Brand这类动态渲染的广告模块内容,这也是你加了常规参数仍无法加载的核心原因。

需补充/修改的配置

  1. 替换为新版无头模式参数
    Chrome 112及以上版本推出了--headless=new参数,底层渲染逻辑和普通有头模式完全对齐,不会出现渲染差异,直接替换你现有配置中的--headless参数即可。

  2. 添加反自动化特征配置
    移除浏览器的自动化标记,规避亚马逊的爬虫识别策略,具体包括禁用自动化控制标记、关闭自动化扩展、修改无头模式默认UA等。

完整可用配置示例

from selenium.webdriver.chrome.options import Options
from selenium import webdriver

options = Options()
# 新版无头模式,替代旧的--headless参数
options.add_argument("--headless=new")
options.add_argument("--window-size=1920,1080")
options.add_argument("--start-maximized")
options.add_argument("--disable-gpu")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--no-sandbox")
options.add_argument("--ignore-certificate-errors")
options.add_argument("--allow-running-insecure-content")
# 禁用自动化控制特征
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
# 替换为你本地正常使用的Chrome浏览器的User-Agent即可
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36")

driver = webdriver.Chrome(options=options)
# 可选:执行JS修改webdriver属性,进一步消除爬虫特征
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
    "source": "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
})

补充优化建议

  • 页面加载后添加显式等待,针对Sponsored Brand模块设置最长10秒的加载等待,避免元素未完成渲染就执行定位逻辑。
  • 如果模块为懒加载触发,可执行JS滚动到对应页面位置触发渲染:driver.execute_script("window.scrollTo(0, 500)"),滚动高度可根据实际页面结构调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:24:05