PHP前端开发

python12306抢票教程

百变鹏仔 4天前 #Python
文章标签 教程
本教程提供使用 Python 抢购 12306 火车票的详细步骤:安装 Python 和相关库。获取 12306 网站的 cookie。登录 12306 网站。查询车次信息。解析车次信息,筛选出有余票的车次。打印有余票的车次信息。根据需要自定义抢票代码。

Python 12306 抢票教程

一、前提条件

二、准备工作

三、代码实现

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

import requestsfrom bs4 import BeautifulSoup# 12306 登录页面 URLlogin_url = 'https://kyfw.12306.cn/otn/login/init'# 12306 抢票页面 URLorder_url = 'https://kyfw.12306.cn/otn/leftTicket/init'# 获取 12306 网站 cookiecookie = get_cookie()# 登录 12306 网站session = requests.Session()session.get(login_url, cookies=cookie)# 查询车次信息params = {    'leftTicketDTO.train_date': '2023-05-01',    'leftTicketDTO.from_station': 'BJP',    'leftTicketDTO.to_station': 'SHH',    'purpose_codes': 'ADULT'}response = session.get(order_url, params=params, cookies=cookie)# 解析车次信息soup = BeautifulSoup(response.text, 'html.parser')train_infos = soup.find_all('tr', class_='odd')# 循环筛选车次信息for train_info in train_infos:    # 判断是否还有余票    if train_info.find('td', class_='btn-group'):        # 获取车次信息        train_num = train_info.find('a', class_='number').text        start_station = train_info.find('td', class_='station-start').text        end_station = train_info.find('td', class_='station-end').text        start_time = train_info.find('td', class_='start-time').text        end_time = train_info.find('td', class_='arrive-time').text        # 打印车次信息        print(f'{train_num} {start_station} -> {end_station} {start_time} -> {end_time}')# 抢票# ... (具体抢票代码请自行编写)