Python中国社区  »  Python

100行Python代码自动抢火车票!

马哥Linux运维 • 4 天前 • 16 次点击  

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


准备工具:

  • 12306网站用户名和密码

  • Python 2.7

  • 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验证码,抢到票后确认支付就行啦。


抢票进行中


抢票成功!

作者:然学科技

来源:https://www.jianshu.com/p/a16b0b258c3b




————近期开班————

马哥联合BAT、豆瓣等一线互联网Python开发达人,根据目前企业需求的Python开发人才进行了深度定制,加入了大量一线互联网公司:大众点评、饿了么、腾讯等生产环境真是项目,课程由浅入深,从Python基础到Python高级,让你融汇贯通Python基础理论,手把手教学让你具备Python自动化开发需要的前端界面开发、Web框架、大监控系统、CMDB系统、认证堡垒机、自动化流程平台六大实战能力,让你从0开始蜕变成Hold住年薪20万的Python自动化开发人才

10期面授班:2018年03月05号(北京)

09期网络班:腾讯课堂随到随学网络

扫描二维码领取学习资料

更多Python好文请点击【阅读原文】哦

↓↓↓


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/gkwvLYM8Tj
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/5297
 
16 次点击  
分享到微博
分享
社区所有版块导航
Python
python开源   pycharm   Django   Python   DjangoApp  
DATA
Elasticsearch   docker  
WEB开发
linux   MongoDB   bottle   tornado   Redis   IE   NoSql   DATABASE   MQ   Bootstrap   NGINX   js   其他Web框架   peewee   Jquery   web工具   Git   zookeeper  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广