是否有解决方法可以通过 CoinGecko API 安全检查?

2024-05-18

我在工作中运行我的代码,一切都很顺利,但在不同的网络(家庭 WiFi)上,我不断收到403访问时出错CoinGecko V3 API https://www.coingecko.com/api/documentations/v3。可以观察到,在私有浏览器上访问 API(以测试它)将提示安全检查(hCaptcha)才能继续。

https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=30

with requests.get(url) as source:
    print(source.status_code)

我也尝试过皮科因盖科 https://github.com/man-c/pycoingecko(用于检查)并仍然返回类似的错误:

>>> from pycoingecko import CoinGeckoAPI
>>> cg = CoinGeckoAPI()
>>> cg.get_coin_market_chart_by_id(id='bitcoin', vs_currency='usd', days=1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\...\Python39\lib\site-packages\pycoingecko\utils.py", line 12, in input_args
    return func(*args, **kwargs)
  File "C:\Users\...\Python39\lib\site-packages\pycoingecko\api.py", line 169, in get_coin_market_chart_by_id
    return self.__request(api_url)
  File "C:\Users\...\Python39\lib\site-packages\pycoingecko\api.py", line 29, in __request
    response.raise_for_status()
  File "C:\Users\...\Python39\lib\site-packages\requests\models.py", line 941, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=1

我猜 Cloudflare 正在怀疑我的网络活动,但显然我正在使用 Python 脚本来访问 API。有没有办法可以通过安全检查?


我可以使用以下命令在命令行上复制对端点的调用:

curl -vv -H "user-agent: C" https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=USD&days=30

-vv- 额外详细的日志记录 - 显示来自服务器的请求/响应的详细信息

-H- 设置 HTTP 标头

随着user-agent: 标题设置为空白我没有收到任何回复。如果我将该值设置为任何非空值,例如C, Chrome, Chrome/91.0.0有用。

如果你可以在 python 中复制相同的内容,你应该得到相同的结果... HTTP 是一种无状态协议。如果它不起作用,那就是其他东西在起作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有解决方法可以通过 CoinGecko API 安全检查? 的相关文章