调用OpenSea资产所有者API时返回HTML而非JSON的问题求助
OpenSea API返回HTML而非JSON的解决办法
你遇到的问题核心是OpenSea的V1 API现在强制要求请求头携带API密钥,同时需要明确指定接受JSON格式,否则服务器会返回HTML错误页面而非预期的JSON数据。
解决步骤:
- 先去OpenSea开发者平台申请你的API密钥(免费额度有限,需合规使用)
- 在请求中添加必要的请求头,包括
X-API-KEY和Accept字段 - 可选:添加状态码校验,提前排查请求错误
修改后的代码如下:
import requests import pandas as pd import time import json # 替换为你自己的OpenSea API密钥 API_KEY = "你的API密钥" url = "https://api.opensea.io/api/v1/asset/0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb/1/owners?limit=20&order_by=created_date&order_direction=desc" # 添加必要的请求头 headers = { "X-API-KEY": API_KEY, "Accept": "application/json" } response = requests.get(url, headers=headers) # 先检查请求状态码 if response.status_code == 200: # 解析JSON数据 data = response.json() print(json.dumps(data, indent=2)) else: print(f"请求失败,状态码: {response.status_code}") print("错误信息:", response.text)
额外说明:
- 无API密钥时,OpenSea公共API限制极严格,大概率返回错误页面
- 确认API密钥权限足够访问资产所有者接口
- 若仍报错,可检查端点参数是否合规,比如
order_by和order_direction的取值是否符合API要求
内容的提问来源于stack exchange,提问作者Orion
相关产品推荐
相关产品推荐

