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

如何用Python构建请求获取指定页面XHR接口的JSON响应?

解决方法

1. 确认正确的请求参数

打开Firefox的网络面板(F12),找到返回目标JSON的请求,记录以下信息:

  • 完整的请求URL(注意末尾是否带斜杠、是否有查询参数)
  • 请求头中的关键字段:User-Agent、Accept、Referer等

2. 模拟浏览器请求

重定向循环通常是因为请求缺少必要的头信息,或者URL格式不正确。试试以下代码:

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0',
    'Accept': 'application/json, text/plain, */*'
}

# 注意URL末尾的斜杠,很多API会因为斜杠问题触发重定向
response = requests.get('https://api.unverpacktverband.de/map/', headers=headers)
response.raise_for_status()  # 抛出HTTP错误
data = response.json()
print(data)

3. 排查重定向细节

如果还是有问题,打印重定向的历史来定位循环点:

import requests

session = requests.Session()
session.headers.update({
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0'
})

try:
    response = session.get('https://api.unverpacktverband.de/map', allow_redirects=True)
except requests.TooManyRedirects as e:
    print("重定向历史:")
    for resp in session.history:
        print(f"{resp.status_code} -> {resp.url}")

通过打印的重定向历史,可以看到请求是在哪个URL之间循环,调整URL或请求头即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:50:37