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

Python请求JSON格式数据时参数被忽略返回HTML,如何解决?

解决方法:添加浏览器请求头

服务器会根据请求中的User-Agent字段识别请求来源,你当前用urllib.request.urlopen发起的请求,默认的User-Agent会被服务器判定为非浏览器客户端,因此忽略format=json参数,返回HTML内容。

只需在请求中添加模拟浏览器的请求头即可获取JSON数据,修改后的代码如下:

import urllib.request
import json

# 构造请求头,模拟Chrome浏览器
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}

# 创建带请求头的Request对象
req = urllib.request.Request('http://ws-old.parlament.ch/factions?format=json', headers=headers)
response = urllib.request.urlopen(req)
response_text = response.read()

# 解析为JSON对象并输出
data = json.loads(response_text)
print(data)

关键说明

  • 通过urllib.request.Request对象携带自定义请求头,让服务器认为请求来自浏览器
  • 你也可以替换成其他常见浏览器的User-Agent字符串,效果一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:11:14