我是Python的新手,也是一般的编码。我正在尝试使用这个简单的代码请求poloniex公共API,但不断收到403错误。
有没有人知道是什么原因导致它以及如何解决它?
由于
import requests
def public_method():
url = 'https://poloniex.com/public?command=returnTicker'
api = requests.get(url)
return api
print(public_method())
答案 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来避免此安全问题。