python - StubHub API 未加载票证信息
问题描述
尝试加载以下事件的信息时出现 403 Forbidden 错误。任何想法是什么原因造成的?
import json
from pprint import pprint
from urllib.request import urlopen
url = 'http://www.stubhub.com/ticketAPI/restSvc/event/104836772'
data = json.load(urlopen(url))
tickets = data['eventTicketListing']['eventTicket']
prices = [ticket['tc']['amount'] for ticket in tickets]
print(sorted(prices))
错误:
Traceback (most recent call last):
File "C:\Users\rcarmody\Desktop\Python\Tickets\tix_seatgeak.py", line 24, in <module>
data = json.load(urlopen(url))
File "C:\Program Files\Python39\lib\urllib\request.py", line 214, in urlopen
return opener.open(url, data, timeout)
File "C:\Program Files\Python39\lib\urllib\request.py", line 523, in open
response = meth(req, response)
File "C:\Program Files\Python39\lib\urllib\request.py", line 632, in http_response
response = self.parent.error(
File "C:\Program Files\Python39\lib\urllib\request.py", line 561, in error
return self._call_chain(*args)
File "C:\Program Files\Python39\lib\urllib\request.py", line 494, in _call_chain
result = func(*args)
File "C:\Program Files\Python39\lib\urllib\request.py", line 641, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
解决方案
- 此链接重定向到实际网页。你的意思是使用
api.stubhub.com
而不是www.stubhub.com
- 您没有随请求发送凭据。这解释了 403。Web 错误代码 403 是某种凭据错误。您需要通过 JSON 在请求中包含凭据。
推荐阅读
- r - 应用优化
- android - 如何进行非常基本的 AWS Device Farm 应用程序端到端测试:只需在指定时间内运行应用程序
- performance - 在 x86 ASM 中测试零通常更快:“TEST EAX,EAX”与“TEST AL,AL”?
- javascript - Bootstrap 4 行,容器末尾有两个列
- azure - 如何使用 C# 将 AppSettings.json 转换为高级 Azure 设置?
- javascript - Jquery mouseenter 和 mouseleave 在 svg 上没有正确触发
- reactjs - 如何禁用材质 ui 自动完成选项
- c# - 找不到服务的 WCF 端点
- java - 返回 Activity 时检索对象
- python - 如何滚动窗口聚合但保留 Pandas 中的唯一索引列?