使用Python3获取403错误

2024-04-25 20:49:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉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())

Tags: 代码importapiurl编码doc链接def
3条回答

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

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

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())

403是一个HTTP状态代码。你可以了解更多关于这些here。在

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

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

import requests


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

    return api


print(public_method().json())

相关问题 更多 >