12306车站信息的爬取是一个比较复杂的系统,爬取需要的信息不是很难,但是要将最终的结果做的完善和美观却不是那么容易。作为一个学习Python的新手,我想把练习和整理结合起来,希望大家可以相互交流和探讨。
这个项目准备花如下几个部分完成:
- 输入条件的判断,包括出发站,到达站,和出发的时间,获取车次信息的链接;
- 在上一步的基础上,获取输入出发站,到达站,和出发时间的车次信息;
- 将输出的结果美化,使用prettytable模块和colorama模块完成美化;
- 添加车票的票价信息;
- 在进行学习;
12306车站信息爬取(1)——输入条件的判断,包括出发站,到达站,和出发时间,并获取车次信息的链接
12306车站信息爬取(2)——输入出发站,到达站和出发时间,获取车次信息的列表
12306车站信息爬取(3)——使用prettytable模块和colorama模块使输出结果美化
在这篇文章中,我要实现的就是第一步的功能, 输入条件的判断,包括出发站,到达站,和出发的时间,获取车次信息的链接;
1. 出发站,到达站的判断:
在判断之前,我们需要对我们最终要获取的链接进行分析:我们最终要获取的这个链接也就是直接可以爬取车次的信息的链接。我们可以看出链接中有出发时间,出发站的代码,和到达站的代码,所以,我们就需要获取这几个信息。
首先,我们进入12306的官网,点击右键——>查看网页源代码——>按Ctrl+F进行搜索——>搜索version——>找到station version的那个信息,打开。
进入那个页面后,我们可以看到许多的车站信息,其中就包括全拼,简拼,代码等信息。找到这个页面后,我们就是要获取这个页面的信息,然后将我们需要的部分信息获取出来。如下如所示。
将获取的数据进行分析可以发现,以@进行分析之后,第一项不是我们需要的信息,还有最后一项的两个字符,我们应该对字符串进行整齐化的处理,将我们需要的信息筛选出来。
如下代码为