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

如何用Python requests获取Wooclap登录所需的Bearer Token?

解决Wooclap活动码登录获取Bearer Token的问题

核心排查步骤

  • 完整抓包监控:打开浏览器开发者工具(F12)的Network标签,清空现有请求后重新输入活动码完成登录,全程追踪所有请求:
    • 重点盯提交活动码的POST请求,检查响应头——Bearer Token可能藏在Set-Cookie字段(比如wooclap_token这类键名),或是响应头的Authorization字段里。
    • 若提交活动码的请求没返回Token,继续看登录后跳转的第一个请求,它的请求头里Authorization: Bearer xxx就是目标Token,反向溯源这个Token的来源,大概率是之前某个请求的Cookie或响应头。
  • 必须用requests.Session()维持会话:Wooclap依赖Cookie保持登录状态,单独的requests.get/post无法留存状态,用Session对象发送所有请求才能自动携带Cookie。

示例代码框架

import requests

session = requests.Session()
# 模拟浏览器UA,避免被拦截
session.headers.update({
    "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",
    "Content-Type": "application/json"
})

# 1. 提交活动码(替换为实际API端点和你的活动码)
join_payload = {"code": "你的活动码"}
join_response = session.post("https://www.wooclap.com/api/v2/sessions", json=join_payload)

# 2. 提取Token的几种情况
# 情况1:Token在会话Cookie中
token = session.cookies.get("wooclap_token")  # 替换为实际Cookie键名
if token:
    bearer_token = f"Bearer {token}"
    print(bearer_token)

# 情况2:Token在响应头的Authorization字段
auth_header = join_response.headers.get("Authorization")
if auth_header and auth_header.startswith("Bearer "):
    print(auth_header)

# 情况3:发起登录后请求,从会话头中获取
if not token and not auth_header:
    # 示例:访问活动详情页触发会话自动带上Token
    activity_response = session.get("https://www.wooclap.com/api/v2/activities/你的活动ID")
    print(session.headers.get("Authorization"))

关键注意事项

  • 不要忽略预检OPTIONS请求:如果遇到CORS报错,可能需要先给目标API端点发送OPTIONS请求,再提交活动码。
  • 检查必填请求字段:部分场景下提交活动码需要X-CSRF-Token,可从页面HTML的<meta name="csrf-token" content="xxx">提取,或是初始请求的Cookie中获取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 18:15:27