爬取微信小程序上海天文馆可购票数

您所在的位置:网站首页 python微信小程序抢票 爬取微信小程序上海天文馆可购票数

爬取微信小程序上海天文馆可购票数

2023-10-25 15:50| 来源: 网络整理| 查看: 265

背景:最近想去上海天文馆玩,但是门票一出来就被抢空了,写个脚本爬一下门票什么时候有,没接wxpy,有兴趣可以加进去,当票数>0时给自己微信发提醒消息。

import requests import urllib import time from requests.packages.urllib3.exceptions import InsecureRequestWarning #requests 移除SSL认证,输出InsecureRequestWarning提示的取消方法 requests.packages.urllib3.disable_warnings(InsecureRequestWarning) if __name__ == "__main__": freeday_date = "2021-11-06" url = "https://ticket.sstm.org.cn" path = "/vendor/reserve/getReservedateListByStadiumId.xhtml" #Charles抓包获取请求参数 post_form_data = { "stadiumId": 69001, "appId": "wx1d7ddce169710ba7" } #mpsessid抓包看header里的,猜测是账户相关 header = { "mpsessid":"xxxxxxxxxx", "content-type":"application/x-www-form-urlencoded", "User-Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.16(0x18001026) NetType/WIFI Language/zh_CN" } session = requests.session() #返回本周的门票数据列表 def send_request(): tickets_result = session.post(url + path,data=urllib.parse.urlencode(post_form_data),headers=header,verify=False).json() return tickets_result["data"]["resultList"] times = 0 while True: tickets_list = send_request() for item in tickets_list: if item["reservedate"] == freeday_date: target_ticket = item["avaiablenum"] #计数 times += 1 print("第{}次请求,{}日上海天文馆可购票数:".format(times,freeday_date) + str(item["avaiablenum"])) time.sleep(5)


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3