为什么我的Python POST请求无法获取Rarible平台用户粉丝列表数据
问题原因及修复方案
现有代码的错误点
- 缺少requests模块导入:你代码开头仅导入了
requests.api.head,没有导入完整的requests模块,运行时首先会触发NameError。 - 请求头参数错误:
- 请求头中
method、path、scheme属于浏览器请求日志的冗余字段,不需要手动添加,requests会自动生成;且你填写的path是关注列表接口的路径,和你实际请求的粉丝列表接口完全不匹配。 - 手动指定了
content-length: 11,但你发送POST请求时没有携带任何请求体,服务器等待接收11字节数据超时,会直接断开连接。 - 硬编码的
x-fingerprint是网站的反爬指纹参数,和浏览器环境、访问会话绑定,直接复用旧值会被反爬策略识别。
- 请求头中
- 请求方法错误:你要调用的粉丝列表接口参数直接拼接在URL中,实际为GET接口,使用POST请求属于请求方式不匹配,会被服务器判定为异常请求直接拒连。
修正后的参考代码
import requests address = '0xe744d23107c9c98df5311ff8c1c8637ec3ecf9f3' followerurl = f'https://api-mainnet.rarible.com/marketplace/api/v4/followers?owner={address}' headers = { "accept": "*/*", "accept-encoding": "gzip, deflate, br", "accept-language": "el,en-US;q=0.9,en;q=0.8", "origin": "https://rarible.com", "referer": "https://rarible.com/", "user-agent": "Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Mobile Safari/537.36", # 这里需要替换成你自己浏览器当前会话最新的x-fingerprint值 "x-fingerprint": "替换为你当前浏览器最新的指纹值", } # 改用GET请求 resp = requests.get(followerurl, headers=headers) print(resp.json())
额外注意事项
x-fingerprint需要每次从你自己的浏览器请求中提取,旧值会快速失效。- 如果仍出现连接重置问题,可添加代理IP、降低请求频率规避反爬策略。
内容的提问来源于stack exchange,提问作者Netgate
相关产品推荐
相关产品推荐

