PHP前端开发

python抢火车票怎么写

百变鹏仔 3天前 #Python
文章标签 火车票
使用 Python 抢火车票的步骤如下:安装 requests 和 beautifulsoup4 库。获取 12306 网站的 cookies。查询车票信息。当有车票可用时,提交订单。

Python抢火车票

如何使用 Python 抢火车票

1. 安装必要的库

首先,你需要安装以下库:

立即学习“Python免费学习笔记(深入)”;

requestsbeautifulsoup4schedule

2. 获取cookies

你将需要一份有效的 12306 网站 cookies。你可以使用以下代码获取它:

import requestsurl = '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 schedulefrom_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 scheduledef 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 resultschedule.every(1).second.do(order_tickets)

注意: