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

今年你不妨自己写一段代码来抢回家的火车票,是不是很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


原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2018-01-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Aloys的开发之路

Oracle中session和processes的设置

欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinn...

32130
来自专栏云+创业计划

静态网站在腾讯云上的托管

可以把静态网站中的各类资源,如图片、音视频、脚本文件等内容,可以存放至腾讯云对象存储(COS),把网站逻辑部署至腾讯云服务器(CVM)。当用户向网站发起访问时,...

2K20
来自专栏沈唁志

WordPress基于腾讯云COS存储站点图片及跨域解决方法

93830
来自专栏小尘哥的专栏

前后端分离Nuxt.js解决SEO问题

背景:由于后端程序猿通常对CSS 、JS掌握不是特别好,通常的开发模式,UI把静态html做好交给程序猿,程序猿开发,把静态html变成动态的时候经常会有各种样...

58240
来自专栏和蔼的张星的图像处理专栏

2. Nsight Eclipse 连接TX2进行CUDA编程

一开始非常纠结在TX2上怎么写CUDA和opencv的程序,总不能在VIM里敲吧,也许是个神器,但现在可能真的没有时间学习,好在发现了Nsight Eclips...

24320
来自专栏DeveWork

WordPress免插件仅代码实现文章归档(模板页面)I

许多博友喜欢为自己的博客建立一个文章归档页面。WordPress 可以用插件来实现,但我们一贯遵守可以不用插件则不用的准则,现在Jeff 就为大家带来免插件仅代...

24380
来自专栏Echo is learning

centos 问题解决记录

12530
来自专栏Java帮帮-微信公众号-技术文章全总结

ajax跨域问题-web开发必会

ajax跨域问题 跨域 同源策略限制 同源策略阻止从一个域上加载的脚本获取或操作另一个域上的文档属性。也就是说,受到请求的 URL 的域必须与当前 Web 页面...

40460
来自专栏玩转JavaEE

axios请求封装和异常统一处理

当前后端分离时,权限问题的处理也和我们传统的处理方式有一点差异。笔者前几天刚好在负责一个项目的权限管理模块,现在权限管理模块已经做完了,我想通过5-6篇文章,来...

1.8K80
来自专栏python爬虫日记

fiddler抓手机报文的配置指南

网上各种资料比较,下面这篇是最准确的,转载自csdn:http://blog.csdn.net/gld824125233/article/details/525...

29440

扫码关注云+社区

领取腾讯云代金券