市场上很多火车票抢票软件大家应该非常熟悉,但很少有人研究具体是怎么实现的,所以觉得很神秘,其实很简单。下面使用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验证码,抢到票后确认支付就行啦。

抢票进行中

抢票成功!

转载自公众号【计算机与网络安全】,本文仅用于技术讨论。

更多相关文章阅读


http://www.taodudu.cc/news/show-6529274.html

相关文章:

  • Python脚本实现12306火车票自动抢票回家or旅游
  • Python3.6实现12306火车票自动抢票(内含源码)
  • 基于Java语言的一次性动态口令算法TOTP
  • 动态口令与数字证书简介
  • 【密码产品篇】动态口令系统密钥体系结构(SM3、SM4)
  • 使用mount命令挂载移动硬盘
  • 挂载U盘和移动硬盘
  • 2021美赛(4)美赛E题数据、思路、方法
  • 美国青年以车会友 愿做两国交流的使者
  • 你会跟谁结婚zz
  • 人生太短,不要给自己贴上年龄标签
  • 美国的儿童新娘:这世界的黑暗,又何止RYB?
  • 美国没有剩女
  • 美国东西岸创业公司的工作体验
  • 大数据分析之美国人结婚的年龄
  • brew 一直等待_LOL手游转圈怎么办_LOL手游一直转圈怎么办
  • 神奇玫瑰花
  • 网易云信携手美踏,打造偶像社交新范式
  • 64位整数乘法 ab%p
  • Python3 猴子偷桃
  • python猴子偷桃 #题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第
  • 猴子偷桃递推
  • 猴子摘桃:猴子摘了x个桃,每天吃一半,最多吃一个,第7天吃的时候剩下一个了,猴子摘了多少桃子?(代码+分析)
  • Python数学问题14:猴子偷桃
  • 实例021:猴子偷桃 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上
  • java 编程习题 之 猴子偷桃
  • 面试编程题-猴子偷桃
  • 【C语言训练】猴子偷桃
  • 猴子吃桃子
  • 猴子偷桃问题(C语言实现)

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

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

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

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

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

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

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

  4. 用python抢火车票_用 Python 代码自动抢火车票

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

  5. python12306抢学生票票下载,基于Python3.6+splinter实现自动抢火车票

    本文实例为大家分享了python实现自动抢火车票,供大家参考,具体内容如下 splinter使用 首先介绍一下splinter使用: plinter.brower是一个开源工具,通过Python自动化 ...

  6. 100个必会的python脚本-100行Python代码实现自动抢火车票(附源码)

    前言 又要过年了,今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool.下面话不多说了,来一起看看详细的介绍吧. 先准备好: 12306网站用户名和密码 chrome浏览器及下载chromedr ...

  7. Python之——实现自动抢火车票(基于Python3.6+splinter)

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/79134306 splinter使用 首先介绍一下splinter使用: plint ...

  8. python抢火车票_听说你能用 Python 帮我抢火车票?!

    原标题:听说你能用 Python 帮我抢火车票?! 文 | 车栗子 来源 |量子位公众号 想要十一回家的小伙伴们,大概刚刚经历了一波抢票大战. 顺便把一个Python抢票工具,送到了GitHub趋势榜 ...

  9. kite:Python 代码自动补全神器

    kite:Python 代码自动补全神器 吃了 学习python的正确姿势 的安利:这个 Python 代码自动补全神器搞得我卧槽卧槽的. 代码自动补全还是挺舒服的嘿嘿嘿. 下面是官网下载给出的示例: ...

最新文章

  1. python编程代码示例_python编程线性回归代码示例
  2. ecshop分类页调用分类名称
  3. python PyQt5 QtWidgets.QWidget.setLayout()(将布局中的小部件重新父级化,以将窗口作为父级)
  4. hdu-1166敌兵布阵(树状数组)
  5. QT的QHBoxLayout类的使用
  6. 如何基于asp.net core的Identity框架在mysql上作身份验证处理
  7. 人事管理系统 数据流图_中国移动集中化人力资源管理系统试点上线成功
  8. 数字电路技术可能出现的简答题_2013年9月份考试数字电子技术第二次作业
  9. 还在这样学 Python?怪不得白费力!
  10. synchronized可重入锁
  11. Ubuntu 16.04 安装QQ, TIM
  12. Leetcode130. 被围绕的区域(深搜)
  13. Linux 设置ssh远程登录端口
  14. 能连蓝牙键盘吗_300多的小键盘,颜值很能打,GANSS ALT71蓝牙双模机械键盘很香...
  15. 爬虫 爬取百思不得姐网站
  16. Android手机图片上传 选择不了本地照片 解决方案
  17. Android手机电池不耐用,手机电池用久了不耐用?教你几招让它“起死回生”!
  18. 手把手教你如何在广交会使用OBS直播丨汇信外贸软件
  19. Java实验报告之java面向对象编程
  20. Java行业2019年的发展前景

热门文章

  1. IOS 字符串中去除特殊符号 stringByTrimmingCharactersInSet 应该用于账号登录等
  2. 进销存系统哪个好?2023最新进销存系统推荐
  3. 博士怎样顺利开题,读博规划【对比国内外读博现状】
  4. Steam在连接至Steam服务器时遇到问题怎么办?
  5. 微信小程序开发文档及文件上传示例(JAVA)
  6. 思科2960恢复密码
  7. 伊朗政府禁止外国法币交易
  8. 计算机上的硬件开关来打开无线网络,如何打开HP笔记本电脑上的无线网络开关...
  9. SmartBits - 简介
  10. Cyber security和Network security的区别