Python

使用 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

上一篇 下一篇

猜你喜欢

热点阅读