pjialin / py12306
- среда, 11 сентября 2019 г. в 00:29:46
Python
🚂 12306 购票助手,支持分布式,多账号,多任务购票以及 Web 页面管理
分布式,多账号,多任务购票
py12306 需要运行在 python 3.6 以上版本(其它版本暂未测试)
1. 安装依赖
git clone https://github.com/pjialin/py12306
pip install -r requirements.txt2. 配置程序
cp env.py.example env.py自动打码
验证码可以本地识别,所用的模型和算法均来自 https://github.com/zhaipro/easy12306 十分感谢!
注:免费打码无法保证持续可用,如失效请手动切换到若快平台,需要先到 http://www.ruokuai.com 注册一个账号后填写到配置中(若快已停止服务,目前只能设置free打码模式)
语音通知
语音验证码使用的是阿里云 API 市场上的一个服务商,需要到 https://market.aliyun.com/products/56928004/cmapi026600.html 购买后将 appcode 填写到配置中
3. 启动前测试
目前提供了一些简单的测试,包括用户账号检测,乘客信息检测,车站检测等
开始测试 -t
python main.py -t测试通知消息 (语音, 邮件) -t -n
# 默认不会进行通知测试,要对通知进行测试需要加上 -n 参数
python main.py -t -n4. 运行程序
python main.py集群依赖于 redis,目前支持情况
使用
将配置文件的中 CLUSTER_ENABLED 打开即开启分布式
目前提供了一个单独的子节点配置文件 env.slave.py.example 将文件修改为 env.slave.py, 通过 python main.py -c env.slave.py 即可快速启动
1. 将配置文件下载到本地
docker run --rm pjialin/py12306 cat /config/env.py > env.py
# 或
curl https://raw.githubusercontent.com/pjialin/py12306/master/env.docker.py.example -o env.py2. 修改好配置后运行
docker run --rm --name py12306 -p 8008:8008 -d -v $(pwd):/config -v py12306:/data pjialin/py12306当前目录会多一个 12306.log 的日志文件, tail -f 12306.log
1. 复制配置文件
cp docker-compose.yml.example docker-compose.yml
2. 从 docker-compose 运行
在docker-compose.yml所在的目录使用命令
docker-compose up -d
目前支持用户和任务以及实时日志查看,更多功能后续会不断加入
使用
打开 Web 功能需要将配置中的 WEB_ENABLE 打开,启动程序后访问当前主机地址 + 端口号 (默认 8008) 即可,如 http://127.0.0.1:8008
目前查询和登录操作是分开的,查询是不依赖用户是否登录,放在 A 云 T 云容易被限制 ip,建议在其它网络环境下运行
交流群 274781597