0

我是 Python 和一般编码的新手。我正在尝试使用这个简单的代码请求 poloniex 公共 API,但不断收到 403 错误。

有谁知道什么会导致它以及如何解决它?

链接到Poloniex API 文档

谢谢

import requests


def public_method():
    url = 'https://poloniex.com/public?command=returnTicker'
    api = requests.get(url)

    return api


print(public_method())
4

3 回答 3

0

403 是 HTTP 状态码。您可以在此处了解有关这些的更多信息。

话虽如此,您提供的代码有效。它连接到 api,但是 api 本身返回 Forbidden 403 响应。

您的代码将返回一个 requests 对象,它(我相信)几乎是您想要的。如果您想从 poloniex api 检索数据,您需要json()针对所述对象调用方法。

import requests


def public_method():
    url = 'https://poloniex.com/public?command=returnTicker'
    api = requests.get(url)

    return api


print(public_method().json())
于 2018-02-01T12:33:47.663 回答
0

如果从浏览器打开时它有验证码,这是 GeoIp 安全功能,您可以使用本地化的欧洲或美国区域内的 VPS 或 VPN 来避免此安全问题。

于 2018-07-05T16:17:35.453 回答
0

基本上,它需要有标题。这解决了问题。

import requests


def public_method():
    headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 
Safari/537.36',
        'Cookie': 
'cf_clearance=1159d2ca806b3ebf2a85a8706f4b8c90ff6abc01-1517488982-1800'
    }

    url = 'https://poloniex.com/public?command=returnTicker'
    api = requests.get(url, headers=headers)

    return api


print(public_method())
于 2018-02-01T13:02:09.203 回答