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

使用requests.get获取的响应头与DevTools不符,无法获取token

问题:使用requests获取登录后token失败,响应头缺失预期字段

我正尝试使用requests库编写自动登录脚本,需要通过requests.get(URL)获取token以用于后续请求,但未能成功获取该token。

我的代码如下:

import requests
import time
import urllib.request
import json

s = requests.Session()

username = 'XXXX'
password = 'XXXX'
gameworld = 'XXXX'

s.headers['User-Agent'] = "XXXX"

s.headers['Content-Type'] = 'application/x-www-form-urlencoded'
s.headers['X-Requested-With'] = 'XMLHttpRequest'

# get page cookies

url = 'https://www.tribalwars.nl/'
res = s.get(url)

authurl = 'https://www.tribalwars.nl/page/auth'
data = f"username={username}&password={password}&remember=1"
res = s.post(authurl, data=data, allow_redirects=False)

if res.status_code == 200:
    print("Logged in to account")
else:
    print("Could not login")

# log in to world

url_gameworld = "https://www.tribalwars.nl/page/play/nl90"

res = s.get(url_gameworld)
print(res.headers)

执行后得到如下响应头:

{'Server': 'nginx', 'Content-Type': 'text/html; charset=utf-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Cache-Control': 'max-age=0, private, must-revalidate, no-cache, private, public', 'Date': 'Sun, 08 Jan 2023 22:00:11 GMT', 'Content-Encoding': 'gzip', 'Vary': 'Accept-Encoding', 'X-JoinUs': 'We are always searching for skilled admins and passionate coders! Go to career.innogames.com and mention this header in your application!', 'X-SaId': '494161', 'X-Frame-Options': 'NONE'}

但在浏览器DevTools中查看的响应头包含预期的uri(即token)字段,我的请求返回的头中却没有该字段。


解决思路与方案

  • 对齐浏览器请求头:手动设置的请求头不完整,浏览器发送的请求会包含Accept、Referer、Accept-Language等额外头信息。打开DevTools复制对应请求的完整请求头,全部添加到session的headers中,确保请求特征和浏览器一致。
  • 验证登录有效性:仅通过状态码判断登录成功不可靠,登录后可以请求一个需要权限的页面,查看返回内容是否包含登录状态标识;也可以检查session的cookies属性,确认是否存在登录相关的认证cookie。
  • 调整重定向设置:登录请求中设置了allow_redirects=False,可能跳过了携带token的重定向步骤。可以移除该参数,让requests自动跟进重定向,再查看后续响应的头或内容。
  • 补充前置请求:部分网站登录前需要获取csrf token等前置参数,仅访问首页可能不够。查看浏览器登录前的请求序列,确认是否有必须的前置接口(比如获取csrf token的请求),并在代码中添加该步骤。
  • 检查响应内容:token不一定在响应头里,可能藏在响应的HTML、JSON或脚本中。打印res.text,搜索是否存在预期的token字段,再通过解析提取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:05:13