天天看点

12306辅助订票工具埋坑大作战(Ubuntu 18.04)

参考github  

https://github.com/testerSunshine/12306

https://github.com/YinAoXiong/12306_code_server

——————————————————————————

因为对Docker不熟,中间走了很多弯路,另外安装依赖库时出现各种西西,搞了2天才运行好,github上已经写的很清楚了,补充几点:

1、12306验证码识别服务器(https://github.com/YinAoXiong/12306_code_server)

有条件的自己搭建一个,要注意的是,

docker部署(推荐)
使用docker可以使用如下命令快速部署:

docker run -d -p 8080:80 --name 12306 yinaoxiong/12306_code_server
docker-compose部署(推荐)
version: "3"

services:
  code_12306:
    image: yinaoxiong/12306_code_server
    ports:
      - 5002:80 #可以根据需要修改端口
    environment:
      - WORKERS=1 #gunicorn works 默认为1可以根据服务器配置自行调整
    restart: always
  
           

这里的意思直接按照这个来就行了,不用改任何东西,我对docker不熟,当时把yinaoxiong改为自己文件夹的名称,其实不用,这里如果本地没有image,会从网上自己下载,不用改。

照上面部署以后,也不知道弄好没有,反正后面自己”通过源码部署“,就是下面的部分,端口改为8081,因为80冲突了,要注意,如果有防火墙的,要打开端口,这里踩过坑。另外,记得用sudo部署,不要权限报错,

在部署时,可能会出现numpy报错之类的

FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'._np_quint8 = np.dtype([("quint8", np.uint8, 1)])
           

通过把numpy降级解决了,CSDN上可以搜索到解决方案。

运行起来以后,验证码识别服务器算是打建好了。

2、12306智能刷票,订票(https://github.com/testerSunshine/12306)

最开始在自己台式机Ubuntu16.04上

  • 项目依赖 requirements.txt

安装时各种报错,后来自己在服务器上虚拟了一台Ubuntu18.04安装正常,apt-get install 和pip安装时建议换国内源,快多了。题外话,自己感觉,从github上下载时,上午比下午要快很多,也不知道是不是和美国那边时差错开的原因。

如果对docker与docker-compose不熟,不要用,直接按照上面配置就行了,不然就会像我一样折腾惨了,报错

ImportError: No module named cv2
           

网上所能找到了解决的所有办法我都试了,没有用,浪费半天功夫,注释掉import cv2 以后,numpy又报错,才意识到,有可能是docker中运行12306验证码识别服务时python找不到依赖库,但是明明都下载了,直接命令行中import cv2没有问题,应该是跟docker相关,但是自己不熟悉,干脆就没用了,直接第一点中部署好12306验证码识别服务器,配置文件

TickerConfig.py配置好,按照

项目使用说明
服务器启动:
修改配置文件
可以配置邮箱,配置邮箱的格式在配置里面可以看到ex
# 测试邮箱和server酱是否可用, server酱测试的前提是server酱开关开启
# 可以配置server酱提醒(推荐)[配置教程](https://www.jianshu.com/p/8d10b5b9c4e3)
# 用python3 还是python 完全取决于安装的时候配置的环境变量是否为python3,以下启动默认环境变量为python3
python3 run.py t
配置配置文件的时候,需注意空格和遵循python语法格式
启动前请先筛选cdn,这点很重要
python3 run.py c
启动服务
python3 run.py r
如果你不知道如何操作,下面的命令可能会帮助你
python3 run.py -h

——————————————————————————
sage: run.py [-h] operate

positional arguments:
  operate     r: 运行抢票程序, c: 过滤cdn, t: 测试邮箱和server酱,server酱
           

运行起来,就搞定啦。

请勿用于商业用途,自己辅助订票就行了。