用python语言爬取12306官网上的火车票信息,获取历时最短和票价最低车次信息
需求是获取12306官网上历时最短和票价最低的车次信息 车次信息会动态更新,主要涉及到车次信息有直达车次和非直达车次,这个需要分别做请求
第一步: 分析12306官网请求URL发现,可以通过一个请求获取到车次的JSON格式的返回数据。想得到最终数据并写入excel表格,则需要对JSON数据进行分析 有个前提条件是需要找到官网上对应的城市和城市码之间的映射(字典),好在官网有提供JS文件,用python语言做正则匹配就好
第二步: 对请求URL的参数分析,需要出发城市代码、重点城市代码、出发日期,非直达车次还需要一个lc_ciphertext信息,这个不固定,不过一个可以重复使用多次 所以想获取尽量完整的数据需要跑多次程序,并更换参数值
重点还是对获取到的JSON数据做分析,应为获取的数据有时候格式比较复杂,分析起来很费力,不过耐着性子终会实现,过程不要迈的太大,写好一步测试一步
最后就是太多的细节问题,包括数据类型,本地存储位置,null的判断,稍后不慎就要重新再来。
本次提供的代码包括最新版的城市-城市代码JS文件,通过正则匹配获取城市-城市代码的python文件,城市-城市代码python文件,历时最短和票价最低python文件 主要有一个包括直接写入excel文件,详情看代码,注释较多,应该都能看懂