可以使用 python 编写一个程序来购买火车票,具体步骤包括:获取火车时刻表,选择火车,填写乘车信息,发送购票请求,判断是否购票成功,支付。
用 Python 购买火车票程序
需求:编写一个 Python 程序,用于购买火车票。
步骤:
1. 导入必要的库
立即学习“Python免费学习笔记(深入)”;
点击下载“修复打印机驱动工具”;
import requests
import json
2. 获取火车时刻表
# 设置请求头以模仿浏览器
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36"
}
# 设置查询参数
params = {
"from_station": "起点站",
"to_station": "终点站",
"date": "出发日期"
}
# 发送请求获取火车时刻表
response = requests.get("https://www.12306.cn/index/index.html", headers=headers, params=params)
3. 解析火车时刻表
# 将响应内容转换为 JSON 格式
data = json.loads(response.text)
# 获取火车信息
trains = data["data"]["trainList"]
4. 选择火车
# 打印火车信息供用户选择
for train in trains:
print(train["train_no"], train["from_station"], train["to_station"], train["departure_time"], train["arrive_time"])
# 提示用户输入选择
selected_train = input("输入您要乘坐的火车车次:")
5. 填写乘车信息
# 提示用户输入乘车人信息
passenger_name = input("输入乘车人姓名:")
passenger_type = input("输入乘车人类型(成人/儿童):")
# 创建乘客信息字典
passenger_info = {
"name": passenger_name,
"type": passenger_type
}
6. 发送购票请求
# 设置请求参数
order_params = {
"train_no": selected_train,
"passenger_info": json.dumps([passenger_info])
}
# 发送购票请求
order_response = requests.post("https://www.12306.cn/order/submitOrderRequest.html", data=order_params)
7. 支付
# 判断是否购票成功
if order_response.status_code == 200:
order_data = json.loads(order_response.text)
if order_data["result_code"] == 0:
# 支付订单
payment_url = order_data["data"]["payment_url"]
# 打开支付页面让用户完成支付
webbrowser.open(payment_url)
else:
print("购票失败,原因:", order_data["result_message"])
else:
print("请求失败,状态码:", order_response.status_code)