Python 编程之 12306 自动购票指南310
12306(中国铁路客户服务中心官网)是铁路部门为旅客提供网上购票、改签、退票等服务的官方网站。利用 Python 编程语言,我们可以自动化 12306 网站的购票流程,从而提高购票效率,避免人工操作的失误。所需工具
* Python 环境(建议使用 Python 3.6 或更高版本)
* requests 库(用于发送 HTTP 请求)
* BeautifulSoup 库(用于解析 HTML)
安装依赖
```shell
pip install requests beautifulsoup4
```
关键函数
* `()`:发送 GET 请求获取网页内容
* `BeautifulSoup(html, "")`:解析 HTML 内容,生成 BeautifulSoup 对象
* `()`:查找 HTML 元素
* `soup.find_all()`:查找所有符合条件的 HTML 元素
* `soup.get_text()`:获取 HTML 元素的文本内容
代码示例
```python
import requests
from bs4 import BeautifulSoup
# 登录 12306 网站
session = ()
login_url = "/otn/login/init"
login_data = {"username": "您的用户名", "password": "您的密码"}
(login_url, data=login_data)
# 查询车票
query_url = "/otn/leftTicket/query"
query_data = {
"leftTicketDTO.train_date": "2023-05-01",
"leftTicketDTO.from_station": "北京",
"leftTicketDTO.to_station": "上海",
"leftTicketDTO.train_no": "",
"purpose_codes": "ADULT",
}
response = (query_url, params=query_data)
soup = BeautifulSoup(, "")
# 解析车票信息
tickets = soup.find_all("tr", class_="ticket")
for ticket in tickets:
# 获取车次、出发站、到达站、出发时间、到达时间、历时、一等座、二等座、软卧、硬卧、硬座、高级软卧、商务座、特等座
train_no = ("a").text
from_station = ("td", class_="from").text
to_station = ("td", class_="to").text
from_time = ("td", class_="start-time").text
to_time = ("td", class_="end-time").text
duration = ("td", class_="lishi").text
first_class = ("td", class_="first-class").text
second_class = ("td", class_="second-class").text
soft_sleeper = ("td", class_="soft-sleeper").text
hard_sleeper = ("td", class_="hard-sleeper").text
hard_seat = ("td", class_="hard-seat").text
senior_soft_sleeper = ("td", class_="senior-soft-sleeper").text
business_seat = ("td", class_="business-seat").text
special_seat = ("td", class_="special-seat").text
# 打印车票信息
print("车次:{}".format(train_no))
print("出发站:{}".format(from_station))
print("到达站:{}".format(to_station))
print("出发时间:{}".format(from_time))
print("到达时间:{}".format(to_time))
print("历时:{}".format(duration))
print("一等座:{}".format(first_class))
print("二等座:{}".format(second_class))
print("软卧:{}".format(soft_sleeper))
print("硬卧:{}".format(hard_sleeper))
print("硬座:{}".format(hard_seat))
print("高级软卧:{}".format(senior_soft_sleeper))
print("商务座:{}".format(business_seat))
print("特等座:{}".format(special_seat))
print("-----------------------")
```
使用说明
* 修改 `login_data` 中的用户名和密码为您自己的信息。
* 修改 `query_data` 中的出发日期、出发站和到达站信息。
* 运行代码,程序将自动查询车票信息并打印在控制台上。
注意事项
* 由于铁路部门可能会调整网站结构,请在使用前检查代码是否需要更新。
* 购票需要验证码,本文未涉及验证码处理,实际使用时需要自行解决。
* 请谨慎使用本程序,避免因恶意操作导致网站瘫痪或其他问题。
2025-02-07
![编程猜数游戏脚本](https://cdn.shapao.cn/images/text.png)
编程猜数游戏脚本
https://jb123.cn/jiaobenbiancheng/34407.html
![Perl 2.0:揭秘其先进性和超越Perl 5的特性](https://cdn.shapao.cn/images/text.png)
Perl 2.0:揭秘其先进性和超越Perl 5的特性
https://jb123.cn/perl/34406.html
![Perl CPAN 资源大全](https://cdn.shapao.cn/images/text.png)
Perl CPAN 资源大全
https://jb123.cn/perl/34405.html
![FPGA 开发之脚本语言](https://cdn.shapao.cn/images/text.png)
FPGA 开发之脚本语言
https://jb123.cn/jiaobenyuyan/34404.html
![Python 中编写高效的 CUDA 程序](https://cdn.shapao.cn/images/text.png)
Python 中编写高效的 CUDA 程序
https://jb123.cn/python/34403.html
热门文章
![Python 编程解密:从谜团到清晰](https://cdn.shapao.cn/images/text.png)
Python 编程解密:从谜团到清晰
https://jb123.cn/python/24279.html
![Python编程深圳:初学者入门指南](https://cdn.shapao.cn/images/text.png)
Python编程深圳:初学者入门指南
https://jb123.cn/python/24225.html
![Python 编程终端:让开发者畅所欲为的指令中心](https://cdn.shapao.cn/images/text.png)
Python 编程终端:让开发者畅所欲为的指令中心
https://jb123.cn/python/22225.html
![Python 编程专业指南:踏上编程之路的全面指南](https://cdn.shapao.cn/images/text.png)
Python 编程专业指南:踏上编程之路的全面指南
https://jb123.cn/python/20671.html
![Python 面向对象编程学习宝典,PDF 免费下载](https://cdn.shapao.cn/images/text.png)
Python 面向对象编程学习宝典,PDF 免费下载
https://jb123.cn/python/3929.html