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

如何使用undetected chromedriver访问Walmart.com并规避反爬检测?

规避Walmart反爬检测的undetected-chromedriver配置技巧

针对Walmart的反爬机制,你需要从浏览器特征伪装、行为模拟两方面优化配置,以下是具体可行的方案:

一、强化ChromeOptions配置

添加更多隐藏自动化痕迹、模拟真实浏览器的参数:

import undetected_chromedriver as uc
from selenium import webdriver
import time
from fake_useragent import UserAgent

# 生成随机用户代理
ua = UserAgent()
user_agent = ua.random

options = webdriver.ChromeOptions()
# 基础隐身与去自动化标识
options.add_argument("--incognito")
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--no-sandbox")
options.add_argument("--disable-extensions")
options.add_argument("--disable-plugins")
options.add_argument("--start-maximized")
# 设置随机用户代理
options.add_argument(f"--user-agent={user_agent}")
# 可选:禁用图片加载以降低检测概率
options.add_argument("--blink-settings=imagesEnabled=false")

二、优化undetected-chromedriver初始化参数

使用use_subprocess=True启动子进程,避免主进程留下自动化痕迹:

driver = uc.Chrome(options=options, use_subprocess=True)

三、修改浏览器Navigator属性

通过JS注入进一步伪装浏览器环境,消除自动化特征:

# 执行JS修改navigator属性
driver.execute_script("""
    Object.defineProperty(navigator, 'webdriver', {get: () => undefined});
    Object.defineProperty(navigator, 'plugins', {get: () => [1,2,3,4,5]});
    Object.defineProperty(navigator, 'languages', {get: () => ['en-US', 'en']});
""")

四、模拟真实用户行为节奏

避免机械性操作,加入随机等待、滚动等行为:

driver.get('https://www.walmart.com/')
# 随机等待1-3秒,模拟用户浏览
time.sleep(2)
# 模拟滚动页面
driver.execute_script("window.scrollTo(0, document.body.scrollHeight/2);")
time.sleep(1)
# 点击清仓标签前再等待
clearance_link = driver.find_element("xpath", "//a[contains(text(), 'Clearance')]")
time.sleep(1.5)
clearance_link.click()

额外注意事项

  • 不要频繁更换IP或短时间内发起大量请求,否则会触发验证码
  • 避免使用固定的用户代理,每次启动都随机生成
  • 若仍出现验证码,可尝试导入真实浏览器登录Walmart后的cookie

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 15:36:17