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

使用axios发送请求时如何自动设置每日更新的请求Cookie?

沃尔玛数据抓取Cookie自动更新解决方案

前置说明

你之前尝试的两个方案不生效是因为使用场景完全不匹配:

  • cookie-parser 是Node.js服务端用来解析客户端发来的请求中Cookie字段的工具,和主动向外发送请求携带Cookie没有任何关联
  • withCredentials: true 仅适用于浏览器环境下的跨域请求,需要对应服务端配置允许跨域携带凭证才会生效,你在脚本/后端环境调用axios时该配置完全不生效

可行解决方案

方案1:无头浏览器模拟访问自动获取Cookie(适配所有反爬场景,稳定性最高)

该方案完全模拟普通用户访问的流程,自动生成符合要求的Cookie,适配沃尔玛的动态Cookie、反爬校验Cookie生成逻辑,不需要手动逆向规则。
操作步骤:

  • 安装无头浏览器工具,推荐puppeteer或playwright
  • 代码中启动无头浏览器,访问你手动复制Cookie时对应的沃尔玛页面
  • 等待页面加载完成、所有Cookie生成后,调用浏览器API提取当前域名下的全部Cookie
  • 把提取到的Cookie拼接为标准的name=value; name2=value2格式,放到后续axios请求的Cookie请求头中即可

参考代码示例:

const puppeteer = require('puppeteer');
const axios = require('axios');

// 自动获取沃尔玛有效Cookie
async function getValidWalmartCookie() {
  const browser = await puppeteer.launch({ headless: 'new' });
  const page = await browser.newPage();
  // 替换为你手动获取Cookie时访问的沃尔玛页面地址
  await page.goto('https://www.walmart.com/your-target-page-path');
  // 可根据实际页面加载逻辑调整等待规则,比如等待指定DOM元素出现
  await page.waitForTimeout(3000);
  // 提取当前页面所有Cookie
  const cookieList = await page.cookies();
  await browser.close();
  // 拼接为请求头需要的Cookie字符串格式
  return cookieList.map(item => `${item.name}=${item.value}`).join('; ');
}

// 实际拉取数据逻辑
async function fetchWalmartBusinessData() {
  const requestCookie = await getValidWalmartCookie();
  const response = await axios.get('https://www.walmart.com/your-target-data-api-path', {
    headers: {
      'Cookie': requestCookie,
      // 其他请求头保持和浏览器访问时一致,避免被反爬拦截
      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
      'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8'
    }
  });
  return response.data;
}

方案2:逆向Cookie生成逻辑直接获取(性能更高,资源消耗低)

如果不想运行无头浏览器,可以手动抓包定位Cookie的生成来源,直接在代码中模拟生成:

  • 打开浏览器开发者工具的网络面板,清空请求后刷新沃尔玛页面,过滤set-cookie响应头
  • 找到你需要的Cookie是由哪个请求返回的,或者是否是前端JS逻辑动态生成的
  • 如果是后端接口返回的,直接在代码中先调用这个前置请求,提取响应头中的set-cookie字段拼接为可用的Cookie字符串即可
  • 如果是前端JS生成的,逆向对应JS的生成逻辑,在自己的代码中实现相同的生成规则即可

配套优化建议

  • 可以在代码中增加请求异常判断,如果axios请求返回401、403状态码,或者返回内容命中登录/人机校验特征,就自动触发重新获取Cookie的逻辑,全程不需要人工介入
  • 所有请求头字段尽量和浏览器正常访问时的字段保持完全一致,避免因为请求特征异常被反爬拦截
  • 个人使用场景下控制请求频率,避免触发沃尔玛的频率限制规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:39:00