首页 > 解决方案 > 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

标签: python

解决方案


  1. 此链接重定向到实际网页。你的意思是使用api.stubhub.com而不是www.stubhub.com
  2. 您没有随请求发送凭据。这解释了 403。Web 错误代码 403 是某种凭据错误。您需要通过 JSON 在请求中包含凭据。

推荐阅读