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

如何仅用Requests模块替代Selenium获取Nike登录所需的用户ID字符串

Great question—this is definitely a tricky one, but let’s break down the actionable steps you can take to replicate that local storage value using just requests and JavaScript execution in Python.

入手方向拆解

1. 先梳理完整的登录前置请求链

打开浏览器开发者工具的「Network」标签,从头走一遍Nike的登录流程,重点记录登录POST请求之前的所有请求:

  • Nike登录门户的初始页面加载请求
  • 任何获取配置、令牌、会话数据的API调用
  • 会设置Cookie或修改localStorage的请求

你在POST URL里看到的长串,几乎肯定是从这些前置请求返回的数据(比如会话令牌、随机数nonce、用户专属种子值)生成的。把所有看起来相关的Cookie、响应头、JSON payload都记下来——后续会用到这些数据。

2. 定位生成目标字符串的JavaScript代码

切换到「Sources」标签,用搜索功能查找该长串(或存储它的localStorage键名)的引用。你要找的是这样的代码:

  • 从Cookie、响应数据或其他浏览器状态中读取值
  • 执行哈希/加密函数(比如SHA-256、HMAC,或者Nike自定义的逻辑)
  • 将结果写入localStorage,或者直接用于登录POST的URL

找到负责生成的函数后,把整个相关代码块(包括它依赖的所有辅助函数)复制出来。

3. 在Python中执行提取的JavaScript代码

要在无浏览器环境下运行这段JS,可以用支持JS执行的Python库,比如PyExecJS,或者通过子进程调用Node.js。这里给个大致的实现框架:

import execjs
import requests

# 第一步:获取所有登录前置数据(Cookie、令牌等)
session = requests.Session()
pre_login_res = session.get("https://www.nike.com/login")
# 从Cookie或响应内容中提取必要参数,比如seed_value、nonce等

# 加载提取到的JS代码
js_code = """
function generateTargetString(seedValue, nonce) {
  // 粘贴你从浏览器中提取的Nike生成逻辑代码
  return customNikeEncryptionLogic(seedValue, nonce);
}
"""

# 创建JS执行上下文
ctx = execjs.compile(js_code)

# 传入参数调用函数,得到目标长串
target_string = ctx.call("generateTargetString", seed_value, nonce)

# 用这个字符串构造登录POST URL并发起请求
login_url = f"https://www.nike.com/login/{target_string}"
login_payload = {"username": "your_username", "password": "your_password"}
session.post(login_url, data=login_payload)

4. 完美模拟浏览器状态

Nike有严格的反爬机制,所以你需要:

  • 完全复制浏览器请求的所有头信息(User-Agent、Accept、Referer等)
  • 在requests会话中全程维护同一个Cookie罐,不要丢弃前置请求设置的任何Cookie
  • 如果JS用到了浏览器专属API(比如window.crypto),你需要在JS代码中模拟这些API,或者用Python的加密库(比如cryptography)实现相同的逻辑

5. 验证并迭代测试

分步验证每一步:

  • 给JS函数传入和浏览器相同的参数,检查输出是否和你在localStorage中看到的长串一致
  • 如果输出不匹配,检查是否遗漏了依赖的JS函数,或者有没有隐藏参数(比如时间戳、CSRF令牌)没抓取到
  • 如果Nike更新了逻辑,重复前面的步骤重新提取最新的JS代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:25:29