使用Python3获取403错误

时间:2018-02-01 12:08:40

标签: python python-3.x api python-requests poloniex

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

有没有人知道是什么原因导致它以及如何解决它?

链接到Poloniex API Doc

由于

import requests


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

    return api


print(public_method())

3 个答案:

答案 0 :(得分:0)

403是HTTP状态代码。您可以详细了解here

说,你提供的代码有效。它连接到api但是api本身返回Forbidden 403响应。

您的代码将返回一个请求对象,它(我相信)几乎是您想要的。如果您想从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())

答案 1 :(得分: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())

答案 2 :(得分:0)

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