市场上很多火车票抢票软件大家应该非常熟悉,但很少有人研究具体是怎么实现的,所以觉得很神秘,其实很简单。下面使用Python模拟抢票程序,给大家揭秘抢票到底是怎么回事。

该代码仅供参考,主要用于大家沟通交流,禁止用于商业用途。

具体代码如下,可以修改成自己的12306用户名账号:

准备工具

12306网站用户名和密码

Python

chrome浏览器及下载chromedriver

下载Python代码,位于:https://github.com/ppy2790/tickets

代码用的Python+Splinter开发,Splinter是一个使用Python开发的开源Web应用测试工具,它可以帮你实现自动浏览站点和与其进行交互。Splinter官网

http://splinter.readthedocs.io/en/latest/ 。Splinter执行的时候会自动打开你指定的浏览器,访问指定的URL。然后你所开发的模拟的任何行为,都会自动完成,你只需要坐在电脑面前,像看电影一样看着屏幕上各种动作自动完成然后收集结果即可。

了解原理

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

12306查询URL:https://kyfw.12306.cn/otn/leftTicket/init

12306登录URL:https://kyfw.12306.cn/otn/login/init

我的12306URL:https://kyfw.12306.cn/otn/index/initMy12306

购票确认URL:https://kyfw.12306.cn/otn/confirmPassenger/initDc

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

找到用户名密码控件名

找到起始地控件名

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

cookie中起始地的值

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

查询车票代码:

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

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

抢票进行中

抢票成功!

用python抢火车票_用 Python 代码自动抢火车票相关推荐

  1. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  2. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  3. python写抢火车票软件_用 Python 代码自动抢火车票

    市场上很多火车票抢票软件大家应该非常熟悉,但很少有人研究具体是怎么实现的,所以觉得很神秘,其实很简单.下面使用Python模拟抢票程序,给大家揭秘抢票到底是怎么回事. 该代码仅供参考,主要用于大家沟通 ...

  4. python100行代码-100行Python代码自动抢火车票!

    今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool. 先准备好: 1)12306网站用户名和密码 2)chrome浏览器及下载chromedriver 3)下载Python代码,来自网络整理 ...

  5. 用 Python 代码自动抢火车票

    市场上很多火车票抢票软件大家应该非常熟悉,但很少有人研究具体是怎么实现的,所以觉得很神秘,其实很简单.下面使用Python模拟抢票程序,给大家揭秘抢票到底是怎么回事. 该代码仅供参考,主要用于大家沟通 ...

  6. 手把手|100行Python代码自动抢火车票!(包教包会)

    http://www.gzhshoulu.wang/article/1418146Python爱好者社区 又到一年一度春运大会,2017年春运抢火车票还是那么难,各大互联网公司都推出抢票服务,只要加钱 ...

  7. python编码尺寸_基于Python批量生成指定尺寸缩略图代码实例

    这篇文章主要介绍了基于Python批量生成指定尺寸缩略图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近我们商城上架的应用越来越丰富了. ...

  8. 用python实现点阵屏_用Python代码来绘制彭罗斯点阵的教程

    这里是显示彭罗斯点阵的Python的脚本.是的,这是可以运行的有效Phython代码. 译注:彭罗斯点阵,物理学术语.上世纪70年代英国数学家彭罗斯第一次提出了这个概念,称为彭罗斯点阵(Pen-ros ...

  9. python网页版_经典python学习教程:20行代码打造一个微信群聊助手,解放双手

    今天的Python学习教程教大家如何用20行Python代码实现微信群聊助手,可以用来活跃群气氛,好多群主创建完群后,拉完一群人,之后就一片寂静,有个群聊助手,就可以帮忙活跃群里气氛,通过今天在自己的 ...

最新文章

  1. .Net winform中嵌入Flash
  2. 工作project里的Verilog记录
  3. 软件实施培训前的准备工作
  4. 车间生产能耗管控方案_SAREN三仁净化工程:锂电池生产车间的设计规范及方案...
  5. MySql的连接查询
  6. windows便签快捷键_win10电脑有哪些常用的快捷键?
  7. Artech的MVC4框架学习——第八章View的呈现
  8. 7 大工具,驯服大数据
  9. 一文足以了解什么是 Java 中的锁
  10. 消息持续积压几小时怎么办
  11. SpannableString与SpannableStringBuilder
  12. C语言-超市仓库管理系统的设计与实现
  13. java 中文词性标注_使用opennlp进行词性标注
  14. IceSword(冰刃)V1.22 Final 绿色汉化修正版
  15. html做手机锁屏,手机个性锁屏怎么做?教你如何制作DIY手机锁屏
  16. keil如何添加h文件_被Keil坑了一天!实在太意外了!用Keil的来瞅瞅看
  17. Python实现PPT转化为Word和OCR识别
  18. MySQL数据库——MySQL INSERT:插入数据(添加数据)
  19. java基础之import语句_繁星漫天_新浪博客
  20. 详解如何获取深度学习模型中间层的输出值

热门文章

  1. HTML中的列表ol ul
  2. java阴阳师抽卡概率_阴阳师的抽卡活动概率究竟是真是假?
  3. 咱们军人也有射击游戏玩了:光荣使命
  4. matlab闰年,基于MATLAB的万年历计算
  5. 怎么写文案?第一段文案怎么写好?
  6. 如何将Ubuntu安装 到移动硬盘--操作系统随身携带
  7. 英飞凌TC397 BootLoader (SOTA)开发目录
  8. android 大学生生活助手,基于Android的大学生生活小助手设计与开发.doc
  9. 【Android 教程系列第 12 篇】常用 App 的 URL Scheme
  10. 基于小脑模型神经网络的轨迹跟踪研究(Matlab代码实现)