python写抢火车票软件_用 Python 代码自动抢火车票
市场上很多火车票抢票软件大家应该非常熟悉,但很少有人研究具体是怎么实现的,所以觉得很神秘,其实很简单。下面使用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 代码自动抢火车票相关推荐
- python编写抢座位软件_用Python抢到回家的车票,so easy!
" 盼望着,盼望着,春节的脚步近了,然而,每年到这个时候,最难的,莫过于一张回家的火车票. 据悉,今年春运期间,全国铁路发送旅客人次同比将增长 8.0%.达到 4.4 亿人次. 20 ...
- python图片识别验证码软件_基于python图片识别工具(图片识别,车牌,PDF,验证码)...
先上图 不多说. 对于一般的用户来说识别率还是能达到百分之90以上. 已经打包成exe文件.windows用户可以直接使用.要软件的加我QQ python代码: # -*- coding: UTF- ...
- python写一个表白程序_用Python写一个能算出自己年龄的小程序
用Python写一个能算出自己年龄的小程序. 其实我连我今年多少岁都不知道,最近看到了python的datetime库里面有很多好用的方法,于是就写了这样一个程序作为练习,然后又写了这样一篇文章来梳理 ...
- python写游戏棋牌游戏_使用python实现简单五子棋游戏
使用python实现简单五子棋游戏 发布时间:2020-08-29 06:12:30 来源:脚本之家 阅读:73 作者:weixin_42874933 用python实现五子棋简单人机模式的练习过程, ...
- 用python写跑酷游戏脚本_用python写游戏之2D跑酷游戏(二)
这篇文章介绍2D跑酷游戏中,添加地板资源, 给主角附加重力作用,以及添加游戏控制器和游戏场景的切换. 废话不多说,直接开始. 添加地板资源 定义地板类,继承自pygame.sprite.Sprite ...
- python写一个笔记软件_科学网—python学习笔记(1)——创建应用 - 高雪峰的博文...
创建应用的步骤打开命令行 进入manage.py的同级目录 命令行输入:python manage.py startapp blog 添加应用名到sittings.py中的Installed_apps ...
- python写一个笔记软件_程序员们都用什么记笔记软件?
visual studio + git + github/gitlab visual studio code (简称 vscode)是一款集大成者,上天入地无所不能!比如我想让编辑器支持思维导图,只需 ...
- python写彩票预测软件_初学python-练习_2使用python编写彩票软件
#!/usr/bin/python #-*- coding: UTF-8 -*- #指定编码格式,让py文件支持万国码 #设置生成票数的最大值 import sys; Maximum = sys.ma ...
- python邮件图片加密软件_用Python发一封图文并茂的邮件
最近使用了不少通讯工具的接口, 比如企业微信机器人,钉钉,微信公众号的接口(未认证的订阅公众号),相对于邮件来说,它们的表现形式太弱.比如没有更丰富的版本方式.当然了,并不是说表现形式越棒就是约好的通 ...
最新文章
- 图像处理分类、一般流程与算法
- spring beans源码解读之--BeanFactory的注册
- 连续子数组的最大和python_连续子数组的最大和
- mysql提高缓存_合理配置MySQL缓存 提高缓存命中率
- Android上实现柱状图表
- (11)Spring框架----基于@AspectJ注解方式和基于XML配置方式开发AOP
- 从 VI 编辑器谈操作系统起源及编辑器本质
- 附加AdventureWorks2012数据库报错
- 计算机硬件的五大逻辑部分,计算机的硬件系统由五大部分组成(计算机由几部分组成)...
- moment.js时间操作
- Revit开发之内建模型
- 爬虫学习笔记(十八)—— 点触验证码:超级鹰、12306自动登录
- 有关JAVA考试中数据库的题_全国2018年4月自考互联网数据库考试真题
- 对于大数据的发展,主要划分为哪几大阶段?
- 2022年下半年网络工程师上午综合知识真题答案解析
- 正向价值观和负向情商
- 使用GD32F10x的SPI0接口读写GD25Q128
- Fences无法编辑删除栅栏
- 用R画有图例的中国地图
- 四川大学计算机综合实践报告,四川大学计算机操作系统第四实验报告
热门文章
- 《云计算(第三版)刘鹏》下载
- pixel什么意思_pixel是什么意思_pixel的翻译_音标_读音_用法_例句_爱词霸在线词典...
- Elasticsearch - 搜索引擎Lucene
- 完整的京东联盟自定义推广链接生产程序
- 信息化过程中如何把握信息安全管理的度?
- Linux修改显示亮度
- 用Easyui写一个银行个人存款计算器(纯前端页面)
- 淘宝禁止“好评返现”
- MGRE下的OSPF实验
- 干货 | 瀑布式项目管理怎么做?