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

Python抓取沃尔玛(Walmart)搜索结果反爬问题解决方案咨询

沃尔玛搜索页数据抓取可行实现方案

方案1:带指纹伪装的自动化工具改造

  • 不要使用原生Selenium,改用undetected-chromedriver,这个库会自动抹除浏览器的webdriver指纹、自动化标记,绕过大部分前端反爬校验
  • 配置启动参数时添加:--headless=new(新无头模式,和普通浏览器指纹一致)、--user-agent设置为真实桌面端浏览器UA,禁用--enable-automation标记
  • 访问前可以先模拟跳转到沃尔玛首页,等待2-3秒再跳转搜索页,模拟真实用户访问路径,不要直接请求搜索接口

方案2:带会话上下文的Requests请求优化

  • 不要直接请求搜索页,先请求沃尔玛首页拿到完整的cookie池,沃尔玛会校验请求的来源上下文和必要cookie
  • 请求头必须完整配置:User-Agent、Accept、Accept-Language、Referer设置为https://www.walmart.com/、sec-ch-ua等浏览器自带的请求头字段,和真实浏览器请求头完全一致
  • 可以搭配使用requests-html库,它内置了Chromium渲染,能处理页面动态加载的内容,同时自带会话保持功能,比原生requests更容易绕过静态反爬

方案3:动态IP代理搭配

  • 以上两种方案如果还是触发拦截,需要搭配住宅代理IP使用,不要用数据中心IP,沃尔玛对数据中心IP段封禁率极高
  • 每次请求切换不同的代理IP,同时控制请求频率,单IP1分钟内请求不要超过5次,避免触发频率限制

代码参考(undetected-chromedriver示例)

import undetected_chromedriver as uc
from selenium.webdriver.common.by import By
from time import sleep

# 配置浏览器启动参数
options = uc.ChromeOptions()
options.add_argument('--headless=new')
options.add_argument('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')

driver = uc.Chrome(options=options)

try:
    # 先访问首页获取基础cookie
    driver.get('https://www.walmart.com/')
    sleep(2)
    # 跳转搜索页
    driver.get('https://www.walmart.com/search/?query=coffee%20machine')
    sleep(3)
    # 提取目标元素内容
    product_elements = driver.find_elements(By.CLASS_NAME, 'search-product-result')
    for item in product_elements:
        print(item.text)
finally:
    driver.quit()

注意:如果页面是懒加载的,需要模拟滚动到页面底部,触发所有商品元素加载完成后再提取内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:15:03