爸妈再也不用担心我抢不到票了

前言

最近在github上闲逛,发现一个用python写的很不错的抢票系统,据说,比12306好用哦并且抢票速度也是非常快的。话不多说,马上就教大家如何一步步使用。各位小伙伴,年尾将至还在为了买一张回家的高铁票,花大把的冤枉钱一下开个VIP、极速、光速嘛?这是基于jupyter运行和docker运行的,不过其他编辑器运行应该也差不多,配置过程是一样的。在jupyter notebook运行%run run.py t可以测试邮箱和server酱是否能收到消息。然后保存文件,在此之前要先运行一下下面两句代码,这是为了py文件修改之后可以在jupyter立即生效的,之前我每次修改TickerConfig.py文件里的参数但是直接在jupyter运行都发现没有修改成功的,要把jupyter关掉重开才行,后面发现运行了这两句代码就可以了。

正文

Step 1

首先进去github项目网址,将项目下载到自己本地电脑。地址在下方:

        https://github.com/testerSunshine/12306

爸妈再也不用担心我抢不到票了_第1张图片

爸妈再也不用担心我抢不到票了_第2张图片

Step 2

    根据网址里面写的操作过程先安装所需的第三方库,从存放12306-master文件夹的目录直接进入cmd,然后运行下列代码。

Step 3

    修改TickerConfig.py文件里面的参数设置。账户密码改为自己的12306账户密码,再根据自己要抢票的时间,车次,乘车人,座位修改相应参数,这些就不细讲了。这里主要讲一下邮箱配置(QQ邮箱)和开启server酱微信通知的操作过程,也是我自己遇到的坑之一。

爸妈再也不用担心我抢不到票了_第3张图片

Step 3.1

邮箱配置的步骤:

     登录QQ邮箱->设置->账户->开启服务,刚开始只开了第一个会报错(SMTPException: STARTTLS extension not supported by server.),所以后来我把三个都打开了,点击开启之后会要你发短信验证,发完之后会收到授权码,这个就是要填在TickerConfig.py里面password的,会有多个授权码,随便哪个都可以。    

爸妈再也不用担心我抢不到票了_第4张图片

爸妈再也不用担心我抢不到票了_第5张图片

Step 3.2

Server酱配置的步骤:

    用github账号登录server酱官网,点微信推送,用微信扫二维码关注server酱公众号绑定账号,然后点发送消息,可以获取SCKEY,这个就是要填在TickerConfig.py里面secret的。

爸妈再也不用担心我抢不到票了_第6张图片

 

爸妈再也不用担心我抢不到票了_第7张图片

Step 3.3

在jupyter notebook运行%run run.py t可以测试邮箱和server酱是否能收到消息。

爸妈再也不用担心我抢不到票了_第8张图片

爸妈再也不用担心我抢不到票了_第9张图片

爸妈再也不用担心我抢不到票了_第10张图片

爸妈再也不用担心我抢不到票了_第11张图片

至此邮箱配置和server酱配置就完成啦!

Step 4

      把云服务器改为本地服务器打码,作者应该写错了,这里要改成本地打码的话是AUTO-CODE_TYPE改为2,HOST改为”captcha:80”,然后保存文件,在此之前要先运行一下下面两句代码,这是为了py文件修改之后可以在jupyter立即生效的,之前我每次修改TickerConfig.py文件里的参数但是直接在jupyter运行都发现没有修改成功的,要把jupyter关掉重开才行,后面发现运行了这两句代码就可以了。

爸妈再也不用担心我抢不到票了_第12张图片

Step 5

要配置一下cookie:

    设置COOKIE_TYPE=3的时候,需要配置RAIL_EXPIRATION、RAIL_DEVICEID的值,怎么找这两个值,打开12306官网,登录界面,按F12,然后找到Network,点开login.html,得到Cookie里面的RAIL_EXPIRATION、RAIL_DEVICEID的值。不过登录一直302,可能要多试几次。

爸妈再也不用担心我抢不到票了_第13张图片

爸妈再也不用担心我抢不到票了_第14张图片

Step 5.1

设COOKIE_TYPE=1的时候要配置chromedriver,查看自己chrome浏览器的版本,浏览器地址栏输入以下地址:chrome://versio,根据下载地址http://chromedriver.storage.googleapis.com/index.html下载与自己chrome版本差不多的chromedriver,存到chrome的文件夹下,然后将CHROME_PATH修改为存放chromedriver的本地路径。

爸妈再也不用担心我抢不到票了_第15张图片

Step 6

    最后就可以运行程序了,在jupyter先运行%run run.py c过滤cdn,就是你不要抢的车次IP,然后再运行%run run.py r,就可以挂起抢票程序了。订票成功的话会发邮件通知和微信通知。

爸妈再也不用担心我抢不到票了_第16张图片

爸妈再也不用担心我抢不到票了_第17张图片

爸妈再也不用担心我抢不到票了_第18张图片

方法二

    如果使用docker运行项目的话,更方便一些,直接按大神的操作指引运行命令就可以了。之前已经下载好了Docker Quickstart Terminal,直接打开软件进入抢票项目目录,然后运行命令就可以了。不过我不太熟悉docker,也看不出运行过程是怎样的,但是第一次是用docker挂起的,成功抢了票,所以应该是没问题的。

爸妈再也不用担心我抢不到票了_第19张图片

爸妈再也不用担心我抢不到票了_第20张图片

最后的最后,会出现载验证码过期或者下载失败的问题,应该是12306封ip的策略,多重试几次。然后暂时抢不到就挂着就行,也好过自己手动查询。

爸妈再也不用担心我抢不到票了_第21张图片

最后

谢谢大家的阅读,原创不易,喜欢就点个赞,这将是我最强的写作动力。如果你觉得文章对你有所帮助,也蛮有趣的,就关注一下我的博客,谢谢。

你可能感兴趣的:(python)