抢票:搭建github最火的12306项目

1.项目地址

https://github.com/testerSunshine/12306

这里我只写了自己的搭建过程,有另外的方式,可以直接看github上的

2.安装python3.7.4

这玩意儿还是别从官网下了,慢的一批。下面是我在网上找的百度云地址。

链接:https://pan.baidu.com/s/1fMfTpj2vywtXtyYVgzS7Ug

提取码:hcaa

下载好后,直接安装即可。

3.搭建云打码

项目地址:https://github.com/YinAoXiong/12306_code_server

这个我是直接通过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的路径

ChromeDriver下载地址如下:https://chromedriver.storage.googleapis.com/index.html

选择与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

极个别的名字不匹配的,直接百度就好了。

 

最后:祝大家都能抢到票。

posted @ 2020-01-05 16:36  市井俗人  阅读(2629)  评论(0编辑  收藏  举报