如何优雅地抢火车票

in 寻寻觅觅 with 2 comments

抢个火车票

马上就要 0202 年了,有不少小伙伴还没有买到火车票。昨天晚上和朋友聊天,发现他还没有买到火车票,适逢今天又是圣诞节,我决定试一试 Github 上很火的一个开源项目。官网提供的安装方法看起来对普通用户不太友好,于是我亲自安装了一遍,并将过程记录了下来,方便大家参考。

运行环境

环境 windows 10 企业版。(家庭版 专业版也可以)

python3 (下面有介绍,莫急)

所需软件

抢票助手

12306智能刷票,订票

下载地址: https://github.com/testerSunshine/12306/archive/master.zip

下载完成后可以解压到你自己的桌面,记住解压的位置

python3

Python3 的官方有提供下载方式,不过这里我们既然使用了 windows 10,不妨就利用自带的应用商店下载。

image-20191225144801599.png

点击 win 商店应用图标,搜索 python 。选择第一个即可,安装完成后,系统会自动帮你添加环境变量,非常智能。

配置环境

检查安装结果

打开 cmd(点击 windows 图标右侧的放大镜),输入 where python3

image-20191225145420063.png

出现以下结果则说明安装正确。

C:\Users\15591>where python3
C:\Users\15591\AppData\Local\Microsoft\WindowsApps\python3.exe

修改注册表

同样的方法,打开注册表。

image-20191225145507422.png

找到路径

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem@LongPathsEnabled

image-20191225145628656.png

修改数值为1,确认保存。

image-20191225145640596.png

开始使用

还记得刚才压缩包解压的位置吗?打开命令行 cmd ,进入到该位置。

如果你和我一样,解压文件放到了桌面,那你可以这样输入

cd Desktop\12306-master

如果没有报错,通常就说明你的操作是正确的,可以继续下一步操作了。

安装依赖

还是那个 cmd,输入下面的内容

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

运行结果大概是这样的。

image-20191225150204330.png

只要你没有看到 ERROR 字样,一般就没有什么问题。

筛选 cdn

这是官网提供的教程,还是 cmd,继续输入

python3 run.py c

运行结果

image-20191225152242346.png

配置订票信息

用记事本打开 TickerConfig.py 文件(将鼠标放到该文件上,右键->打开方式->记事本)

配置规则有点复杂,需要按照自己的需求修改。

我的建议是修改

刷票模式

TICKET_TYPE = 1

乘车信息

STATION_DATES、STATION_TRAINS 、FROM_STATION 、TO_STATION 、SET_TYPE 、TICKET_PEOPLES 
USER 、PWD 

打码信息

AUTO_CODE_TYPE = 3
# 此处设置云打码服务器地址,如果有自建的服务器,可以自行更改
HOST = "101.132.36.202:8080"
REQ_URL = "/verify/base64/"
HTTP_TYPE = "http"

本地运行打码我还没有弄明白,之后可以了再更新。

cookie 获取

COOKIE_TYPE = 1
# 如果COOKIE_TYPE=1,则需配置chromeDriver路径,下载地址http://chromedriver.storage.googleapis.com/index.html
# chromedriver配置版本只要和chrome的大版本匹配就行
CHROME_PATH = "C:\chromedriver"

COOKIE_TYPE = 2 有点问题,所以暂时使用 COOKIE_TYPE = 1

但是为了使用 COOKIE_TYPE = 1,我们需要下载 chrome(谷歌浏览器)以及它的驱动管理程序。

去这里下载 chrome :https://www.google.cn/intl/zh-CN/chrome/

下载完成后自行安装。

去这里下载 驱动管理:http://chromedriver.storage.googleapis.com/

注意需要和 chrome 版本号保持一致。

下载完成后解压,将文件放置到 C 盘根目录。(也可以放置到其他位置,但要修改 CHROME_PATH)

我使用的是 79 版本 chrome,所以下载的是这个:

http://chromedriver.storage.googleapis.com/79.0.3945.36/chromedriver_win32.zip

开始抢票

cmd 输入

python3 run.py r

运行结果

image-20191225164137678.png

订单状况

image-20191225165149114.png

如果余票不足,可能需要等待较长时间才能成功,自己多多关注下。

邮件提醒功能也很简单,看配置说明自己添加吧。

常见问题

PATH 问题:

C:\Users\15591\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\Scripts

这是我的 python Scripts 位置,为方便使用,可以将他添加到 PATH 里面。

可参考:https://www.onesrc.cn/p/environmental-variable-path.html

tensorflow_estimator:

ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: 'C:\\Users\\15591\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python37\\site-packages\\tensorflow_estimator\\python\\estimator\\canned\\linear_optimizer\\python\\utils\\__pycache__\\sharded_mutable_dense_hashtable.cpython-37.pyc'

windows 路径限长引起的,修改注册表即可,前面有介绍。

参考链接

https://github.com/testerSunshine/12306/issues/446

https://docs.python.org/3.7/using/windows.html

Responses
  1. joke

    小白完全按照您的步骤操作,安装依赖提示Could not find a version that satisfies the requirement tensorflow==1.14.0 (from -r requirements.txt (line 10)) (from versions: none)。不知道该怎么办了,烦请指点下,谢谢!

    Reply
    1. @joke

      可能是python版本的问题。建议把所有的python全部卸载了,然后重新安装。注意版本要选择3.7。

      Reply