Python爬虫实现12306火车票查询

本文介绍了使用Python爬虫实现12306火车票查询的过程,涉及HTML、JSON、JS解析,以及如何处理中英文站名转换、请求验证警告和数据展示。通过分析12306网站的XHR请求,提取所需信息,并利用requests库和正则表达式(Re)处理数据,最后使用PrettyTable库美化输出结果。
摘要由CSDN通过智能技术生成

    昨天早上,突发奇想想要给基友弄一个火车票查询工具,顺便熟悉一下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.csdn.net/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)

 因此加入


                
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值