我正在尝试从一个网站中获取一些JSON
数据,以用于为Discord机器人制作的小程序。目前的代码如下:
if message.content.startswith("!jsontest"):
import requests
data = requests.get('http://schoolido.lu/api/cards/799/').json()
print(data)
我也尝试使用urllib.request.urlopen,但无论使用哪种方法,都会收到403
错误。以下是输出:
Traceback (most recent call last):
File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\site-packages\discord\client.py", line 259, in _run_event
yield from getattr(self, event)(*args, **kwargs)
File "C:/Users/user/Desktop/Bot.py", line 177, in on_message
response = ur.urlopen("http://schoolido.lu/api/cards/799/")
File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 162, in urlopen
return opener.open(url, data, timeout)
File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 471, in open
response = meth(req, response)
File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 581, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 509, in error
return self._call_chain(*args)
File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 443, in _call_chain
result = func(*args)
File "C:\Users\user\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 589, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
我是不是漏掉了什么东西,还是那段代码有问题?我试过很多来自Stack Overflow的示例,但它们都没有做出任何不同的反应,即我仍然收到一个403
错误。
data = requests.get('http://schoolido.lu/api/cards/799/', headers={"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36"}).json()
。 - alecxe