本文主要是介绍【人工智能写代码】一键查询12306剩余车票的Python脚本解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一键查询12306剩余车票的Python脚本解析
在节假日或旅游高峰期,购买火车票往往是一件令人头疼的事情。为了简化这一过程,本文将介绍一个使用Python编写的脚本,它可以帮助你快速查询12306网站上的剩余车票信息,并以表格的形式展示出来。下面,我们将逐步解析这个脚本的工作原理。
环境准备
在开始之前,确保你的环境中已经安装了以下Python库:
os
:用于处理操作系统相关的功能。pandas
:用于数据处理和分析。requests
:用于发送HTTP请求。prettytable
:用于打印格式化的表格。
你可以使用pip命令来安装这些库:
pip install os pandas requests prettytable
脚本功能
该脚本的主要功能是:
- 自动获取城市名称对应的城市代码。
- 从12306网站查询指定日期的火车票信息。
- 将查询结果以表格形式展示。
- 将查询结果保存到Excel文件中。
代码解析
全局变量初始化
favorite_names = ''
start = ""
end = ""
这里定义了三个全局变量,分别用于存储用户偏好的城市名、起始站和目的站。
城市代码获取
def init():# ...省略部分代码...return [start, end, time]
init
函数用于初始化脚本,包括从12306网站获取城市名称对应的城市代码,并询问用户输入出发地、目的地和出发日期。
城市代码转换
def get_city_code(city):# ...省略部分代码...return None
get_city_code
函数通过解析init
函数获取的城市名称列表,返回对应的城市代码。
主函数入口
if __name__ == '__main__':# 初始化start, end, time = init()# ...省略部分代码...
脚本的入口点在__main__
块中,这里调用了init
函数来获取必要的信息,并开始查询流程。
查询车票信息
res = requests.get(url, headers=head).json()
通过requests
库发送HTTP请求到12306的查询接口,并解析返回的JSON数据。
结果展示与保存
tb = pt.PrettyTable(['车次', '出发时间', '到达时间', '商务座', '一等座', '二等座', '一等座(软卧)', '二等座(软卧)', '硬座'])
# ...省略部分代码...
print(tb)
df.to_excel('12306购票汇总.xlsx')
使用prettytable
库打印出一张包含车次、出发时间、到达时间等信息的表格,并将这些信息保存到Excel文件中。
总结
通过上述Python脚本,我们可以快速地查询12306网站上的剩余车票信息,并以表格的形式直观展示。这个脚本不仅提高了查询效率,还方便了用户对信息的整理和保存。在使用此脚本时,请确保遵守12306网站的使用协议,并注意个人隐私和账户安全。
请注意,12306网站的结构可能会发生变化,因此脚本可能需要根据实际情况进行相应的调整。此外,由于12306网站的反爬虫策略,频繁的查询请求可能会导致IP被封禁,因此请合理使用此脚本。
完整代码
这篇关于【人工智能写代码】一键查询12306剩余车票的Python脚本解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!