市场上很多火车票抢票软件大家应该非常熟悉,但很少有人研究具体是怎么实现的,所以觉得很神秘,其实很简单。下面使用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.rhkb.cn/news/37955.html
如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
python最新抢票脚本
手把手教你用python一键抢12306火车票(附代码)
chatgpt赋能python:Python怎么抢票?
chatgpt赋能python:Python自动抢票:让你的购票经历更加简单便捷!
基于微信小程序的餐厅点餐软件设计及开发
餐饮行业移动管理系统—Pad点餐系统
基于Android移动终端的微型餐饮管理系统的设计与实现2-侧滑菜单
安卓移动开发技术--微信界面设计
移动开发--类vx界面
【餐厅点餐平台|四】UI设计+效果展示
【餐饮】智慧餐厅原型模板,餐饮APP,餐饮后台管理系统,Axure设计餐饮APP
基于Androidstudio餐厅点餐选座系统
【花雕学AI】ChatGPT能用表情包猜电影,你能猜出来吗?揭秘它的神奇「涌现」能力
chatgpt赋能python:Python数据分析中如何快速取到一列数据
【花雕学AI】09:发挥ChatGPT最大潜力——产生高质量内容的九种方法和建议
AI教父Hinton与OpenAI CEO Sam Altman领头预警:AI可能灭绝人类!
多位知名学者最新警告「AI 可能灭绝人类」,ChatGPT 之父和 AI 教父都参与联名,如何理解?
什么是ChatGPT?GPT4和3.5有什么不同
不直播不露脸也能做短视频变现,想挣点生活费试试这些玩法
实不相瞒,我做海外TikTok搬运视频一年的收入,可能是你10年的工资
- AI + 非遗文化传播,人工智能师资培训重磅招募
- ChatGPT 国产平替上线;FTC 阻止微软 690 亿美元收购动视暴雪;PHP 8.2.0 发布|极客头条
- Java面试经典 150 题.P13. 罗马数字转整数(012)
- # Redis 入门到精通(九)-- 主从复制(1)
- (6)SpringMVC中使用CharacterEncodingFilter编码过滤器处理请求和响应的乱码问题
- (Matlab)基于CNN-LSTM的多维时序回归预测(卷积神经网络-长短期记忆网络)
- (成功踩坑)electron-builder打包过程中报错
- (湖科大教书匠)计算机网络微课堂(下)
- (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
- (三十二)实现一个基本的文件上传功能的Flask应用
- (十三)、MQTT3.1.1-MQTT服务端数据结构设计
- (四)k8s实战-服务发现