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

Selenium Python点击Nike官网加购按钮无响应 反爬绕过方案求解

Nike官网Selenium自动化加购被拦截的解决方法
  • 替换原生Selenium驱动为undetected-chromedriver,该驱动会自动修改所有可被反爬检测的指纹特征,比手动配置隐藏参数的效果好很多,安装命令:pip install undetected-chromedriver,替换后初始化代码示例:
import undetected_chromedriver as uc
options = uc.ChromeOptions()
# 可选加隐身模式参数
options.add_argument("--incognito")
options.add_argument("--disable-blink-features=AutomationControlled")
driver = uc.Chrome(options=options)
  • 移除多余的反人类操作逻辑:删除driver.minimize_window()这行代码,正常用户不会打开浏览器后立刻最小化再最大化,这类异常操作会被反爬策略优先标记。
  • 修正UA配置冲突:你先设置了随机UA,后续又用execute_cdp_cmd硬编码了Chrome 83版本的UA,该版本浏览器已经非常老旧,会被Nike反爬直接标记拦截,删除硬编码UA的行,保留随机UA配置即可。
  • 替换原生点击逻辑:不要直接调用element.click(),该方法的触发特征容易被检测,换成两种方式二选一:
    1. JS模拟点击:driver.execute_script("arguments[0].click();", add_to_bag)
    2. ActionChains模拟真人操作:先移动鼠标到按钮悬停,等待随机时长后再点击,示例代码:
from selenium.webdriver.common.action_chains import ActionChains
import random
# 移动到按钮位置
ActionChains(driver).move_to_element(add_to_bag).pause(random.uniform(0.3, 1.2)).click().perform()
  • 替换固定时长的time.sleep为随机等待+显式等待,固定整秒的等待间隔是自动化脚本的典型特征,每次操作后等待random.uniform(0.5, 2.5)秒的随机时长,元素定位用WebDriverWait显式等待,不要用强制等待。
  • 操作前先处理弹窗:Nike官网加载后会弹出Cookie同意、隐私政策类弹窗,如果不先点击同意,后续的加购点击会被弹窗拦截,即使视觉上看起来已经点到了按钮,页面也不会响应,先加逻辑定位弹窗的同意按钮点击后再执行后续操作。
  • 每次运行前清除浏览数据:如果已经被反爬标记过,同一浏览器实例的所有操作都会被拦截,启动时添加options.add_argument("--incognito")开启隐身模式,每次运行都用全新的匿名会话,避免被历史指纹标记。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 15:15:06