我正在尝试在多个活动日期中取消门票的可用性。
每个事件日期都有其自己的eventID,因此对于23个可能的日期,事件ID为1001-1023
我已经开始手动进行此操作,下面给出了给定日期的所有席位,但是重复22次并不是最有效的方法。
import requests
import json
f = open('tickets.txt','a')
r = requests.get('https://www.website.com/events/1000/tickets/seatmap?sectionid=3')
d = json.loads(r.text)
zones = d['zones']
for key, value in zones.iteritems() :
print >>f, (key, value)
我想遍历eventID并一次打印所有日期的所有可用性。但是,我无法建立请求/ URL。到目前为止,我已经创建了:
eventIDs = range(1001, 1023)
baseurl = "https://www.website.com/events/"
sectionId = "/tickets/seatmap?sectionId=3"
更新:我认为我已经到了,这我认为行得通...
for i in eventIDs:
url=baseurl+str(i)+sectionId
r = requests.get(url)
d = json.loads(r.text)
print >>f, (d)
这是最好的方法吗?任何帮助,不胜感激。谢谢。
答案 0 :(得分:2)
您应该考虑让您的休息呼叫异步。如果您想坚持requests
风格,可以使用grequests
:
# Python3
import grequests
event_ids = range(1001, 1023)
base_url = "https://www.website.com/events/"
section_id = "/tickets/seatmap?sectionId=3"
# Create an array of urls
urls = [base_url + str(i) + section_id for i in event_ids ]
# Preapare requests
rs = (grequests.get(u) for u in urls)
# Send them
results = grequests.map(rs)
或者您可以将asyncio
与aiohttp
结合使用。如果您对此感兴趣并想查看它的外观,可以访问this question