昨天早上,突发奇想想要给基友弄一个火车票查询工具,顺便熟悉一下html、json、js格式,为之后制作微信小程序做准备,于是便开始了爬虫的道路。
12306网站想要爬跟之前爬静态网页并不一样,首先由于是一个查询工具,必须要先把网页设置为查询页,才能够爬取网页的信息
打开12306网站 查询北京到上海的火车票
看起来网页地址并没有任何变化
这个时候就需要用到浏览器的一些工具,这里使用的是chrome浏览器
打开工具查看到XHR请求处出现了日期、出发站、到达站的信息
此时便可以通过复制粘贴这段网址来获取相应的火车信息
但是会发现我们输入的站点为中文,而网页代码是站点的英文编号,那么如何进行站点的中英文切换呢
这个时候就需要去查询中英文对应的“字典”
在这里的976行找到了station_version=1.9050,这是火车站版本号,复制这个后缀,在12306网址后加上,便可以到达这个页面
已经可以看到火车站中文名与英文编号,此时就要使用requests库来提取网页信息
关于requests库:https://www.cnblogs.com/zhaof/p/6915127.html
对于信息的提取可以看到我们要提取的信息是大写英文字母以及中文,因此可以使用正则表达式(Re)
关于Re库:https://blog.youkuaiyun.com/i_chaoren/article/details/62264414
除此以外此网站会有如此提示:
requests\packages\urllib3\connectionpool.py:843: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecureRequestWarning)
因此加入