使用Python requests调用dex.guru API返回403,headers正确如何解决
403错误解决方案
核心原因
dex.guru接口设置了两层访问限制:一是API请求需要携带官方发放的鉴权密钥,二是部署了Cloudflare反爬机制,会拦截未通过浏览器指纹校验的非官方请求,你当前使用的浏览器模拟头缺少必填鉴权参数,因此触发403拒绝。
修复方案
方案1:官方合规调用(推荐,长期稳定)
- 在dex.guru官网的开发者板块申请免费API密钥
- 调整请求头与请求地址,参考代码如下:
import requests API_KEY = "替换为你申请到的API密钥" headers = { "Accept": "application/json", "api-key": API_KEY } # 注意:你描述中要请求的tokens接口与你代码中实际调用的tradingview接口不一致,根据需求选择对应地址 # 1. 代币信息接口 url = "https://api.dex.guru/v1/tokens/0x7060d3F1CC70A07f4768560B9D9B692ac29244dE-bsc" # 2. Tradingview数据接口 # url = "https://api.dex.guru/v1/tradingview/symbols?symbol=0x7060d3f1cc70a07f4768560b9d9b692ac29244de-bsc" response = requests.get(url, headers=headers) print(response.json())
- 确认代币地址后缀的链标识正确,BSC链后缀为
-bsc,ETH链后缀为-eth,链标识错误也会返回403。
方案2:临时反爬绕过(无需申请密钥,适合测试)
使用cloudscraper库自动处理Cloudflare指纹校验,无需额外配置请求头:
- 安装依赖:
pip install cloudscraper - 参考代码:
import cloudscraper scraper = cloudscraper.create_scraper() url = "https://api.dex.guru/v1/tokens/0x7060d3F1CC70A07f4768560B9D9B692ac29244dE-bsc" response = scraper.get(url) print(response.json())
注意事项
接口请求频率限制为每分钟30次,短时间内发起大量请求会触发临时封禁,返回403错误,封禁会在1小时后自动解除。
内容的提问来源于stack exchange,提问作者Jimbo
相关产品推荐
相关产品推荐

