python抢火车票怎么写
使用 python 抢火车票的步骤如下:安装 requests 和 beautifulsoup4 库。获取 12306 网站的 cookies。查询车票信息。当有车票可用时,提交订单。
Python抢火车票
如何使用 Python 抢火车票
1. 安装必要的库
首先,你需要安装以下库:
requests beautifulsoup4 schedule
2. 获取cookies
你将需要一份有效的 12306 网站 cookies。你可以使用以下代码获取它:
import requests url = 'https://kyfw.12306.cn/otn/leftTicket/init' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36' } response = requests.get(url, headers=headers) cookies = response.cookies
3. 查询车票
接下来,你需要查询车票信息。你可以使用以下代码:
import schedule from_station = '北京' to_station = '上海' train_date = '2022-06-10' def query_tickets(): url = 'https://kyfw.12306.cn/otn/leftTicket/query' params = { 'leftTicketDTO.train_date': train_date, 'leftTicketDTO.from_station': from_station, 'leftTicketDTO.to_station': to_station, 'purpose_codes': 'ADULT' } response = requests.get(url, params=params, cookies=cookies) result = response.json() return result['data']['result'] schedule.every(1).second.do(query_tickets)
4. 提交订单
当有车票可用时,你可以使用以下代码提交订单:
import schedule def order_tickets(): url = 'https://kyfw.12306.cn/otn/leftTicket/submitOrderRequest' data = { 'secretStr': '', # 需要填写 secretStr 字段,可以参考官方文档 'train_date': train_date, 'back_train_date': train_date, 'tour_flag': 'dc', 'purpose_codes': '00', 'query_from_station_name': from_station, 'query_to_station_name': to_station, 'undefined': '' } headers = { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' } response = requests.post(url, data=data, headers=headers, cookies=cookies) result = response.json() return result schedule.every(1).second.do(order_tickets)
注意:
- 该代码只是一个示例,你可能需要根据你的实际情况进行修改。
- 使用该代码可能会违反 12306 网站的条款和条件,请谨慎使用。
以上就是python抢火车票怎么写的详细内容,更多请关注其它相关文章!