使用 py12306 购票
2020-01-30 本文已影响0人
王诗翔
归程将至,不少朋友可能还未买到火车票。这里根据我自己这几天的购票经历分享下如何使用工具 py12306 购票。
这里我们使用 Linux 系统。
安装 Python 环境
首先需要 Python 环境,下面安装了一个 Miniconda,它会带 Python,如果已经有的话可以跳过。
# 安装 Python >= 3.6
wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# 按照指示一路向下
# 重启终端
安装 py12306
git clone https://github.com/pjialin/py12306
cd py12306 && pip install -r requirements.txt
cp env.py.example env.py
修改配置
上面得到的 env.py
包含了程序所有的配置,有非常好的注释,跟着修改即可。
主要是修改账号、密码、购票人和乘车区间、日期等。
另外需要设置下微信推送,使用 Server 酱即可:
# ServerChan 和 PushBear 微信消息推送
# 使用说明,点击下面的链接查看
# ServerChan http://sc.ftqq.com
# PushBear http://pushbear.ftqq.com
SERVERCHAN_ENABLED = 1
SERVERCHAN_KEY = 'xxx'
设置完后测试下(免得买到票没收到通知😂)
运行购票程序
python main.py
可以使用 nohup
挂在后台:
nohup python main.py &
浏览器通过 127.0.0.1:8008
可以访问 Web 端。
如果运行时出现网络错误的提示
修改下面的配置:
# 网络错误问题临时解决方案
# 以IE为例,网页登陆12306 网站: https://kyfw.12306.cn/otn/resources/login.html
# 按F12 调出浏览器调试页面定位到网络选项:
# 在头部Cookie里面查找,RAIL_EXPIRATION 和RAIL_DEVICEID的值 。
# 打开 env.py,查找这两个参数,把值替换成第二步里的RAIL_EXPIRATION 和RAIL_DEVICEID的值,重启刷票脚本即可 愉快的登录刷票了。
CACHE_RAIL_ID_ENABLED = 1
RAIL_EXPIRATION = 'xxx' #浏览12306 网站中的Cache的RAIL_EXPIRATION 值
RAIL_DEVICEID = 'xxx' #浏览12306 网站中的Cache的RAIL_DEVICEID 值
最后,如果有其他问题和需求请查看项目主页:https://github.com/pjialin/py12306