# -*- coding:utf-8 -*- import requests import json class trainTicketsSprider: def getTicketsInfo(self, purpose_codes, queryDate, from_station, to_station): # url = 'https://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate=2016-10-22&from_station=SZQ&to_station=SHH' url = 'https://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=%s&queryDate=%s&from_station=%s&to_station=%s' %(purpose_codes, queryDate, from_station, to_station) headers = { "Accept": "text/html,application/xhtml+xml,application/xml;", "Accept-Encoding": "gzip", "Accept-Language": "zh-CN,zh;q=0.8", "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36" } # h = 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0' TicketSession = requests.Session() TicketSession.verify = False # 关闭https验证 TicketSession.headers = headers try: resp_json = TicketSession.get(url) ticketsDatas = json.loads(resp_json.text)["data"]["datas"] return ticketsDatas except Exception: print(Exception) def isZero(num): if num == '--' or num == '无': return '0' else: return num def main(): purpose_codes = 'ADULT' queryDate = '2016-10-22' from_station = 'SZQ' to_station = 'SHH' TicketSprider = trainTicketsSprider() res = TicketSprider.getTicketsInfo(purpose_codes, queryDate, from_station, to_station) for i, ticketInfo in enumerate(res): print("车次:%s" %ticketInfo["station_train_code"]) print("起始站:%s" %ticketInfo["start_station_name"]) print("目的地:%s" %ticketInfo["to_station_name"]) print("开车时间:%s" %ticketInfo["start_time"]) print("到达时间:%s" %ticketInfo["arrive_time"]) if (ticketInfo["train_class_name"] == "动车"): print("一等座还剩:%s张票" %isZero(ticketInfo["zy_num"])) print("二等座还剩:%s张票" %isZero(ticketInfo["ze_num"])) print("软 卧还剩:%s张票" %isZero(ticketInfo["rw_num"])) else: print("硬卧还剩:%s张票" %isZero(ticketInfo["yw_num"])) print("硬座还剩:%s张票" %isZero(ticketInfo["yz_num"])) # print("无座还剩:%s张票" %isZero(ticketInfo["wz_num"])) # print("是否有票:%s" %ticketInfo["canWebBuy"]) print("**********************************") if __name__ == '__main__': main()
爬虫抓取火车票信息
最新推荐文章于 2023-06-07 14:15:00 发布