这个脚本目前只能刷一趟车的,人数可以是多个,支持选取作为类型等。

实现思路是splinter.browser模拟浏览器登陆和操作,由于12306的验证码不好自动识别,所以,验证码需要用户进行手动识别,并进行登陆操作,之后的事情,就交由脚本来操作就可以了,下面是我测试时候的一些截图:

第一步:如下图,首先输入抢票基本信息

第二步:然后进入登录页,需要手动输入验证码,并点击登陆操作

第三步:登陆后,自动进入到抢票页面,如下图这样的

最后:就是坐等刷票结果就好了,如下图这样,就说是刷票成功了,刷到票后,会进行短信和邮件的通知,请记得及时前往12306进行支付,不然就白抢了

Python运行环境:python3.6

用到的模块:re、splinter、time、sys、httplib2、urllib、smtplib、email

未安装的模块,请使用pip instatll进行安装,例如:pip install splinter

如下代码是这个脚本所有用到的模块引入:

刷票前信息准备,我主要说一下始发站和目的地的cookie值获取,因为输入城市的时候,需要通过cookie值,cookie值可以通过12306官网,然后在F12(相信所有的coder都知道这个吧)的network里面的查询请求cookie中可以看到,在请求的header里面可以找到,_jc_save_fromStation值是出发站的cookie,_jc_save_toStation的值是目的地的cookie,然后加入到代码里的城市的cookie字典city_list里即可,键是城市的首字母,值是cookie值的形式。

抢票,肯定需要先登录,我这里模拟的登录操作,会自动填充12306的账号名和密码,当然,你也可以在打开的浏览器中修改账号和密码,实现的关键代码如下:

登录之后,就是控制刷票的各种操作处理了,这里,我就不贴代码了,因为代码比较多,别担心,在最后,我会贴出完整的代码的。

当刷票成功后,我会进行短信和邮件的双重通知,当然,这里短信通知的平台,就看你用那个具体来修改代码了,我用的是互亿无线的体验版的免费短信通知接口;发送邮件模块我用的是smtplib,发送邮件服务器用的是163邮箱,如果用163邮箱的话,你还没有设置客户端授权密码,记得先设置客户端授权密码就好了,挺方便的。以下是主要实现代码:

说了那么多,感觉都是说了好多废话啊,哈哈,不好意思,耽误大家时间来看我瞎扯了,我贴上大家最关心的源码,请接码,大家在尝试运行过程中,有任何问题,可以给我留言或者私信我,我看到都会及时回复大家的:

python实现12306全自动抢票相关推荐

  1. python编写12306窗体抢票软件(二)

    python编写12306窗体抢票软件(二) 本文这次介绍如何获取12306网站的验证码并登陆. 1 获取验证码 12306它是一个服务器,每次我们访问它都是以客户端的方式去向它索取信息. 建议用谷歌 ...

  2. python编写12306窗体抢票软件(一)

    python编写12306窗体抢票软件(一) 第一次写博客,拿写过的软件练个手~ 12306是学习爬虫的比较好的一个练手网站.本文带你重零开始编写一个python窗体,十分简单,小白进来看哈~这节只说 ...

  3. Python大牛带你实现12306全自动抢票,学完后春运回家抢票无忧

    随着2018年春节的脚步日益临近,归心似箭的人们都希望能尽快赶回家中.中国人回家过年,是每个人一年中最重要的事,无论你离家远近.在所有的交通工具中,承担着最大客流量的交通工具,毫无疑问是火车.中国庞大 ...

  4. 基于python的12306自动抢票系统的设计与实现

    铁路售票系统12306网站作为一个广受人们的日常使用工具,受大极大的关注.铁路售票的管理者都主要考虑降低成本,提升售票服务满意度.一年一度的春运和节假日出行高峰期,给众多的出行群众者带来了极大的烦恼, ...

  5. python实现12306自动抢票脚本-splinter结合chrome浏览器

    ---------------------------------------------------------------------------------------------------- ...

  6. Python实现12306自动抢票小程序

    项目描述: 本程序通过网络爬虫技术,通过抓包分析出一次购票过程中出现的所有请求,最后通过Python程序一步步实现模拟浏览器进行请求.本程序通过调用云打码平台实现登录时候验证码校验,并能实现不断地监控 ...

  7. 用Python实现12306自动抢票脚本,五一假期出行无忧!

    用python另一个抢票神器,你get到了吗? 2017年时间飞逝,转眼间距离2018年春节还有不到1个月的时间,还在为抢不到火车票发愁吗?作为程序员的我们撸一个抢票软件可好? ... 难以想象的数据 ...

  8. 12306全自动抢票

    目录 基础知识简介 相关软件下载安装 脚本分析 完整代码 注意 基础知识简介 首先我们要了解一样东西就是selemiun+chromedriver. 首先 Selenium相当于一个机器人,可以模拟人 ...

  9. python+selenium 12306自动抢票

    写在前面 又到了一年一度的春运,又要开始抢票了,因为并不是很相信XC.FZ等预约抢票,就想着自己写个脚本,但其实网上已经有很多人写了抢票程序,我为什么还要重写呢,因为12306的网页源代码是有变化的, ...

最新文章

  1. chrome登录_比Chrome还要好用?(全新edge浏览器体验)
  2. The EF Core tools version '2.1.1-rtm-30846' is older than that of the runtime '2.1.3-rtm-32065'. ...
  3. 如何在XML中注释掉一个标签块?
  4. 废弃电器电子产品回收:需要的不仅是补贴 !
  5. zigbee定位_基于RFID室内定位技术的解决方案,能满足高精度室内定位吗?
  6. 运维专家:我在大数据项目中踩过的那些坑
  7. 模板方法模式–使用Lambda表达式,默认方法
  8. pcap文件提取后的dataframe,切分前向流与后向流
  9. java字符串不可变_Java字符串真的是不可变的吗?
  10. 超大背包问题(二进制枚举 + 二分)
  11. JWPlayer快速入门指南(中文)
  12. POJ2109-Power of Cryptography
  13. 【Linux】SCP 拷贝命令
  14. python 读取网络位置的文件
  15. 操作系统的发展历史(综述性小论文)
  16. arduino控制小车转向_利用XECU和激光雷达快速搭建入门级的自动驾驶小车
  17. 漫话:如何给女朋友解释为什么日本时间比中国时间快一个小时
  18. ANGELABABY独家呈现——BE STUPID.有态度 够勇敢
  19. 软考高级系统架构设计师:数学与经济管理
  20. Android如何适配不同屏幕分辨率

热门文章

  1. 百趣代谢组学解读-ASD研究
  2. PADS画2.54mm排针
  3. 浅谈TC10休眠唤醒规范
  4. 离散数学·代数结构【正规子群、商群、群的同态和同构、环与域、格、布尔代数】
  5. JS课程分享(7.函数)
  6. vs哪个版本好用_【小巨人分享】VS出品销量神器 沛纳海 441 升级版来了!
  7. 新手如何使用Github
  8. html元素相对定位和绝对定位
  9. Hyper-V虚拟化
  10. 单片机之人体感应传感器原理与实现