利用Python代码自动抢火车票的原理以及代码解析

马哥Linux运维 2018-01-13 10:32 次阅读

今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool。

准备工具:

12306网站用户名和密码

Python 2.7

chrome浏览器及下载chromedriver

下载Python代码

代码用的Python+Splinter开发,Splinter是一个使用Python开发的开源Web应用测试工具,它可以帮你实现自动浏览站点和与其进行交互。Splinter执行的时候会自动打开你指定的浏览器,访问指定的URL。然后你所开发的模拟的任何行为,都会自动完成,你只需要坐在电脑面前,像看电影一样看着屏幕上各种动作自动完成然后收集结果即可。

了解原理:

找到相应URL,找到控件模拟登录、查询、订票操作。关键是找到控件名称,难点是起始地不是直接输入的页面值,需要在cookie中查出。

12306查询URL:

12306登录URL:

我的12306URL:

购票确认URL:

Python代码打开URL,找到控件填充值:

利用Python代码自动抢火车票的原理以及代码解析

找到用户名密码控件名

找到起始地控件名

确定起始地的值,方法Chrome浏览器中的“检查”功能(按F12),Network ---> Cookies中找到:

cookie中起始地的值

拷贝起始地的cookie值,我把几个常用的城市拷出来,放到了字典中:

查询车票代码:

其实,你只需要运行代码:

当然,还需要手动点一下的还是万恶的12306验证码,抢到票后确认支付就行啦。

抢票进行中

抢票成功!

马哥Linux运维 技术专区

原文标题:100行Python代码自动抢火车票!

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

门禁控制器代码

门禁系统是在智能建筑领域,意为Access Control System,简称ACS。指“门”的禁止....

发表于 01-19 17:39 次阅读 0条评论
门禁控制器代码

Coding Dojo发布了 2018 最具就业前景的 7 大编程语言

2018 年即将到来,Coding Dojo(编码道场)发布了 2018 最具就业前景的 7 大编程....

的头像 机器学习算法与人工智能 发表于 01-18 14:37 次阅读 0条评论
Coding Dojo发布了 2018 最具就业前景的 7 大编程语言

树莓派用python来进行编程的优点以及编程详解

树莓派是一个非常廉价的、只有手掌大小的完全可编程的计算机。虽然树莓派的体积小,但是它的潜力无限。你可....

的头像 嵌入式资讯精选 发表于 01-17 14:10 次阅读 0条评论
树莓派用python来进行编程的优点以及编程详解

用cython编写程序能够得到更高的性能

根据一些我收到的反馈,大家似乎有点混淆——Cython是用来生成 C 扩展到而不是独立的程序的。所有....

的头像 马哥Linux运维 发表于 01-16 16:35 次阅读 0条评论
用cython编写程序能够得到更高的性能

介绍初次接触ARM开发应该从4个方面来理清开发思路

由于涉及编程,学习ARM单片机系统对于从事电子电路的设计者来说是有些困难的,学习知识不难,难的是理清....

的头像 嵌入式资讯精选 发表于 01-16 14:32 次阅读 0条评论
介绍初次接触ARM开发应该从4个方面来理清开发思路

从5个方面来解析计算机中的字符编码概念

字符编码是计算机编程中不可回避的问题,不管你用 Python2 还是 Python3,亦或是 C++....

的头像 马哥Linux运维 发表于 01-16 09:08 次阅读 0条评论
从5个方面来解析计算机中的字符编码概念

python为什么这么火_python是干什么的_python的用途与应用

Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种面向对象的解释型....

发表于 01-15 17:26 次阅读 0条评论
python为什么这么火_python是干什么的_python的用途与应用

树莓派用什么语言编程_树莓派python编程详解

树莓派是一个非常廉价的、只有手掌大小的完全可编程的计算机。虽然树莓派的体积小,但是它的潜力无限。你可....

发表于 01-15 17:00 次阅读 0条评论
树莓派用什么语言编程_树莓派python编程详解

整理了所有数据专家都应该会的七款Python工具

我咨询了我们真正的数据专家,收集整理了他们认为所有数据专家都应该会的七款 Python 工具。The....

的头像 马哥Linux运维 发表于 01-15 10:21 次阅读 0条评论
整理了所有数据专家都应该会的七款Python工具

如何通过计算机视觉去识别车道线

摄像机获得的视频图像,由于受到周围环境的影响,存在着很多无用信息和各种各样的噪声干扰。为了准确的检测....

的头像 深度学习实战 发表于 01-15 10:03 次阅读 0条评论
如何通过计算机视觉去识别车道线

python串口接收数据

本文主要介绍了python串口接收数据。其中涉及了Python使用线程来接收串口数据,以及pytho....

发表于 01-15 09:52 次阅读 0条评论
python串口接收数据

python串口编程实例

本文主要介绍了几种python串口编程实例。Python是纯粹的自由软件, 源代码和解释器CPyth....

发表于 01-15 09:35 次阅读 0条评论
python串口编程实例

python程序调试中设置条件断点

本文主要介绍了python程序调试中设置条件断点。实际开发中,调试代码通常要花费比新编写代码更多的时....

发表于 01-14 11:39 次阅读 0条评论
python程序调试中设置条件断点

调试Python程序代码的几种方法总结

本文主要介绍了调试Python程序代码的几种方法总结。第一种方法简单直接粗暴有效,就是用print把....

发表于 01-14 11:22 次阅读 0条评论
调试Python程序代码的几种方法总结

python断点调试方法

本文主要介绍了python断点调试方法,pdb 是 python 自带的一个包,为 python 程....

发表于 01-14 10:44 次阅读 0条评论
python断点调试方法

使用DRaaS测试操作系统更新和新代码版本

几乎每个数据中心都需要测试操作系统更新和新代码版本。采用DRaaS解决方案就可以满足需求。问题是这些....

的头像 存储界 发表于 01-12 17:29 次阅读 0条评论
使用DRaaS测试操作系统更新和新代码版本

基于python的小波阈值去噪算法

本文主要介绍了利用python来实现小波阈值去噪算法。网上都是利用matlab来实现小波阈值去噪的,....

发表于 01-10 16:32 次阅读 0条评论
基于python的小波阈值去噪算法

介绍了五个简单的总体概念 可轻松写出写出好代码

我认为应该建立起良好的心态,这样,不管你用什么语言或者库,都会自然而然的写出高质量的代码。这里我主要....

的头像 机器学习算法与人工智能 发表于 01-10 14:00 次阅读 0条评论
介绍了五个简单的总体概念 可轻松写出写出好代码

基于anaconda来解决Python安装问题

很多人按照我之前的Python安装教程可以成功,但是方法之下必定有BUG,所以还有一部分人(电脑)无....

的头像 马哥Linux运维 发表于 01-08 10:00 次阅读 0条评论
基于anaconda来解决Python安装问题

基于python语言下的的机器学习库

本文的目的就是列举并描述Python可用的最有用的机器学习工具和库。这也仅仅是抛砖引玉,希望大家能提....

发表于 01-05 18:45 次阅读 0条评论
基于python语言下的的机器学习库