50 个加速包都抢不到车票,还不如这个 Python 抢票神器!
又到了一年一度的抢票大战,本来就辛苦劳累了一年,想着可以早点订到票跟家里人团聚。所以有挺多的人,宁愿多花些钱去找黄牛买票。但今年各种抢票软件的横行,还有官方出的加速包,导致连黄牛都不敢保证能买到票。你无奈的只能一起加入抢票大军。
从不花钱的低速,到中速、高速、极速、光速、VIP,6 种抢票速度,越快当然抢到的几率也就更高,但每升一极都需要你花 10 个加速包才能实现。
而加速包的获取方式有两种:1 直接花钱买,1 元 1 个价格,全套下来大概 50 元左右。2 是好友助力,每邀请一个好友帮你助力就能获取 2 ~ 5 不等的加速包。
大部分人都是不愿意花钱买加速的,所以你开始群发好友,轰炸微信群,朋友圈吆喝,挂 N 个抢票软件,各种你能想到的手段,都尝试一遍,但无一都失败了。
今天我就给大家介绍一个开源的 Python 抢票程序,亲测有效!我身边已经有很多好友,通过这个程序抢到车票了。不仅免费开源,还非常有用。
12306 购票小助手
作者也很用心的把程序的思路给画了出来,我们可以简单的看一下。整个思路其实就是模拟一个正常人购票的方式,首先查询下车票剩余的票数,如果有座位提交订单,出现验证码这识别验证码,随后就循环点击提交按钮,这里作者就做了很多的条件判断,比如出现异常则重新查询,提交订单失败也重新查询,直至获取订单成功。订票成功之后还有一个通知机制,即发送到你的邮箱里。
项目使用到的 Python 库
接下来我们查看这个项目都用到哪些 Python 库。打开 requirements.txt 文件,这里面把项目所用到的库大致都写了出来。
网络请求用到了经典的 requests 库,而页面解析用到了 bs4 和 beautifulsoup4。有人可能会问这两个解析库有什么区别?bs4 是用在 python3 版本上的,而 beautifulsoup4 是用在 python2 版本上。我最开始学 beautifulsoup 的时候就被这个坑过。
Pillow:Pillow 是很经典的 Python 图像处理库,可以大致猜测作者用这个库来解决简单验证码的问题。
PyYAML:YAML 是一种直观的能够被电脑识别的的数据序列化格式,容易被人类阅读,并且容易和脚本语言交互。YAML 类似于 XML,但是语法比 XML 简单得多。PyYAML 是 YAML 的 Python 实现,可以用于参数化 Pytho n对象,用来当做配置文件。
Six:众所周知 Python 2 和 Python 3 版本的分裂给 Python 开发者们带来了很大的烦恼,为了使代码同时兼容两个版本,往往要增加大量的代码。 于是 Six 出现了。正如它的介绍所说,它是一个专门用来兼容 Python 2 和 Python 3 的库。它解决了诸如 urllib 的部分方法不兼容, str 和 bytes 类型不兼容等“知名”问题。
到这里就可以看出作者这个程序是考虑到 Python 不同版本之间的兼容性问题的,简直业界良心。
wrapacache:一个基于 Python 装饰器 Decorators 的方法缓存系统,用于缓存 Python 方法的输出值,可以支持复杂数据类型,可以缓存到 Redis 中、Python dict、LUR 算法存储中。
ntplib:这个库是用来在 window 上同步校准当地时间的。
安装使用
上图在 GitHub 仓库中都有写到。我这里就简单的讲下,首先你需要注册「若快」的打码平台,为了可以让程序自动打码。随后安装程序依赖包,安装方法上面已经写到了。
最后程序有一个很重要的文件叫「ticket_config.yaml」
所有购买车票的信息都是在这个文件里配置的,比如车票时间,12306 账号密码,乘车人信息,通知邮箱等等,作者在文件中都有详细的注释。
把这个配置文件按你的需求填写完毕之后,大家就可以开始运行了。
运行 run.py 文件即可,亲测有效!
考虑到有些同学上不了 GitHub 我已把所有文件都放在后台了,私信回复「12306」即可获取!
50 个加速包都抢不到车票,还不如这个 Python 抢票神器!的更多相关文章
- 连Python产生器(Generator)的原理都解释不了,还敢说Python用了5年?
最近有很多学Python同学问我,Python Generator到底是什么东西,如何理解和使用.Ok,现在就用这篇文章对Python Generator做一个敲骨沥髓的深入解析. 为了更好地 ...
- 智行火车票免费加速到VIP最高速抢票(不用朋友积攒或者购买加速包)
更新: 2018.11.07, 昨天我买火车票,已经不行了,这个bug已经没有了,被修复了, 望大家知悉!!! 智行火车票免费加速到VIP最高速抢票(不用朋友积攒或者购买加速包) 1)下过单后选择抢到 ...
- 二、Spring Boot 中maven中dependencies所有的jar包都报红,install报错(https://repo.maven.apache.org/maven2): Not authorized , ReasonPhrase:Authorizatio
问题一:现象:打开SpringBoot项目后,所有依赖包都报红色波浪线 1.install报错(https://repo.maven.apache.org/maven2): Not authorize ...
- pip安装任何包都出现问题
<!DOCTYPE html> { margin: 0; padding: 0; } body { background: url(images/body_bg.png) repeat-x ...
- 都2019年了,还问GET和POST的区别
摘要: 对比GET与POST. 原文:都9102年了,还问GET和POST的区别 作者:程淇铭 Fundebug经授权转载,版权归原作者所有. 1. 前言 最近看了一些同学的面经,发现无论什么技术岗位 ...
- npm包的更新说明,你还敢不看吗
npm包的更新说明,你还敢不看吗 前言 平时工作少不了依赖一些第三方的npm包,站在各位大牛的肩膀上来更好的写bug,此外还可以学习各位大佬们的各种设计思路和优雅实现.不过npm包虽好,但使用之前也要 ...
- CentOS 8 都发布了,你还不会用 nftables?
原文链接:CentOS 8 都发布了,你还不会用 nftables? 如果你没有生活在上个世纪,并且是云计算或相关领域的一名搬砖者,那你应该听说最近 CentOS 8 官方正式版已经发布了,CentO ...
- [转帖]CentOS 8 都发布了,你还不会用 nftables?
CentOS 8 都发布了,你还不会用 nftables? https://www.cnblogs.com/ryanyangcs/p/11611730.html 改天学习一下 原文链接:CentOS ...
- pip安装python包出现Cannot fetch index base URL http://pypi.python.org/simple/
pipinstall***安装python包,出现 Cannot fetch index base URL http://pypi.python.org/simple /错误提示或者直接安装不成功. ...
随机推荐
- Activity和ListActivity的区别
http://book.51cto.com/art/201007/212051.htm
- 时间操作(Java版)—获取给定日期N天后的日期
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/wangshuxuncom/article/details/34896777 获取给定 ...
- Dispatch Sources(转)
Dispatch Sources 现代系统通常提供异步接口,允许应用向系统提交请求,然后在系统处理请求时应用可以继续处理自己的事情.Grand Central Dispatch正是基于这个基本行为而设 ...
- Linux随笔-鸟哥Linux服务器篇学习总结(全)
作者:Danbo 时间:2015-7-17 在runlevel3启动级别下默认启动网络挂载(autofs)机制,我们可以通过命令将其关闭:chkconfig autofs off 或者 /etc/in ...
- 原来 Set 集合也可以排序
Java 集合类主要由两个接口派生而出: Collection 和 Map.在 Collection 集合中,我们经常用到的是 List 集合和 Map 集合,而 Set 集合出场的机会就相对比较的少 ...
- leetcode leetcode 783. Minimum Distance Between BST Nodes
Given a Binary Search Tree (BST) with the root node root, return the minimum difference between the ...
- BestCoder Round #92 1001 Skip the Class —— 字典树 or map容器
题目链接:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=748&pid=1001 题解: 1.trie树 关 ...
- 查询oracle数据库中的for update 中锁住的table表sql语句
SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s W ...
- 不能访问tomcat中的项目
tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误.同时其他项目页面也不能访问. 关闭eclipse里面的tomcat,在 ...
- PYTHON 异常处理 二 TRY 模块
异常处理 捕捉异常可以使用try/except语句. try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理. 如果你不想在异常发生时结束你的程序,只需在try ...