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

使用Python requests查询eToro交易员组合返回512状态码问题排查

解决eToro投资组合API请求返回512错误的问题

看起来你遇到的512错误是eToro的反爬机制在拦截你的请求——这个状态码并非标准HTTP状态码,是eToro自定义的错误标识,通常意味着你的请求没通过平台的验证。下面是你可能遗漏的关键点和对应的解决方案:

1. 缺少必要的会话Cookie

从你提供的响应头里能看到Set-Cookie字段,说明eToro要求请求携带有效的会话Cookie才能访问API。你直接发起API请求时,没有带上之前访问用户页面时生成的Cookie(比如__cfduid、eToro的会话ID等),服务器会判定这是非法请求。

解决方法:用requests.Session()维持会话,先访问目标用户的portfolio页面获取Cookie,再用同一个会话请求API,Cookie会自动被携带。

2. 动态请求参数的有效性问题

你硬编码的client_request_id是一次性UUID,eToro可能会验证这个参数的有效性(比如是否和当前会话关联、是否为新生成的),重复使用同一个ID很容易被识别为爬虫。

解决方法:每次请求API时生成新的UUID作为client_request_id;另外建议从用户页面的HTML源码中提取cid(用户ID),而非硬编码,避免用户ID变更导致请求失效。

3. Cloudflare反爬验证

eToro用Cloudflare保护站点,除了Cookie验证外,还会检查请求的行为模式(比如是否先加载页面再发起API请求、是否有JS渲染痕迹)。纯requests库的请求可能无法通过Cloudflare的人机验证。

解决方法:如果调整Cookie和动态参数后仍失败,可尝试用Selenium等工具模拟真实浏览器操作——先打开用户页面,等待加载完成后再触发API请求,这样能绕过大部分基于JS的反爬验证。

修改后的代码示例

import requests
import uuid

# 初始化会话,维持Cookie
session = requests.Session()
user_portfolio_url = "https://www.etoro.com/people/jaynemesis/portfolio"
base_headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0',
    'Host': 'www.etoro.com'
}

# 先访问用户页面获取会话Cookie
session.get(user_portfolio_url, headers=base_headers)

# 生成新的client_request_id
new_client_id = str(uuid.uuid4())
api_url = f"https://www.etoro.com/sapi/trade-data-real/live/public/portfolios?cid=3378352&client_request_id={new_client_id}"

# 构造API请求头,带上Referer
api_headers = base_headers.copy()
api_headers['Referer'] = 'https://www.etoro.com/people/jaynemesis/portfolio/history'

# 发起API请求
response = session.get(api_url, headers=api_headers)

print("状态码:", response.status_code)
print("响应内容:", response.text)

额外提示

如果上述方法仍无法解决问题,大概率是Cloudflare触发了人机验证(比如弹出CAPTCHA),这时纯代码请求很难绕过,你可以考虑:

  • 查看eToro是否有公开的官方API,避免爬取非公开接口(注意遵守平台条款)
  • 使用支持Cloudflare绕过的合规第三方工具(需谨慎评估合法性)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 15:47:49