1.项目地址
这里我只写了自己的搭建过程,有另外的方式,可以直接看github上的
2.安装python3.7.4
这玩意儿还是别从官网下了,慢的一批。下面是我在网上找的百度云地址。
提取码:hcaa
下载好后,直接安装即可。
3.搭建云打码
这个我是直接通过docker拉去的镜像,直接运行在服务器的,学生优惠。
拉取:docker pull yinaoxiong/12306_code_server
运行:docker run -d -p 8088:80 --name 12306 yinaoxiong/12306_code_server
在浏览器输入 ip:port,能看到hello world,就说明搞定了
4.拉取项目源代码
通过git clone直接拉去到本地即可。
然后就是修改配置文件:TickerConfig.py,文件中很贴心的给了很多注解。
下面我就简单的写一点我遇到的问题。
4.1.HOST
这里就可以用我们的刚刚运行起来的镜像了,当然如果你没有,也可以使用他提供的服务。
如果是通过docker构建,则需要改为:captcha:80
4.2.EMAIL_CONF
邮箱配置,主要是用来发送通知邮件,我这里用的是139邮箱,可以做到短信通知。
139邮箱的发件服务器为:stmp.139.com
4.3.SERVER_CHAN_CONF
这个是通过微信公众号通知,我没有配置。想配置的可以看github,提供了教程。
4.4.COOKIE_TYPE
这个是获取12306登录的凭证的。提供三种方式。
1.使用selenium获取devicesID
这个的意思是通过ChromeDriver,自动登录12306获取凭证。
需要配置CHROME_PATH = " ",路径就是你下载的ChromeDriver的路径
选择与Chrome浏览器对应的版本进行下载,下载后解压即可。
路径配置需要到具体的文件:CHROME_PATH = "U:\\ChromeDriver\\chromedriver_win32\\chromedriver.exe"
这个我配置的时候,好像控制不了Chrome,遂放弃。不过你们可以试试。
2.使用网页端/otn/HttpZF/logdevice获取devicesId
这个接口的算法目前可能有点问题,如果登录一直302的请改为配置1。
我配置了下,确实是302,遂放弃。
3.自己打开浏览器在headers-Cookies中抓取RAIL_DEVICEID和RAIL_EXPIRATION,这个就不用配置selenium
打开浏览器,进入12306官网,打开调试模式,火狐是F12,选择网络。
在12306官网上,输入账号名密码,进行登录。
点击最后一个请求,选择Cookie,这两个字段就是我们要找的数据了。
复制下来,填入下面的配置即可。
RAIL_EXPIRATION = " "
RAIL_DEVICEID = " "
5.运行项目
5.1.安装依赖
在项目的文件夹下,Shift+右键,在此处打开打开命令窗口,安装依赖。
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
5.2.测试
python run.py t
测试成功的话,你就能收到一封测试邮件了。
5.3.筛选CDN
python run.py c
5.4.运行抢票
python run.py r
6.依赖问题
在运行的时候,可能因为依赖的原来跑步起来。一般报错如下:
ModuleNotFoundError: No module named "XXXX"
这个时候只需要将这些模块安装一遍就行了
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple XXXX
极个别的名字不匹配的,直接百度就好了。
最后:祝大家都能抢到票。