• 抢票:搭建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

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

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

  • 相关阅读:
    PID算法控制直流电机笔记
    HAL库直流电机编码测速(L298N驱动)笔记
    HAl库控制L298N直流电机旋转笔记
    MQTT介绍与使用(转载)
    STM32中STD、HAL、LL库比较
    rpm检验是否被改动过
    find命令 参数
    会话管理测试时的注意点
    无权限修改用户组权限的状况一
    burpsuite + sqlmap 日志导出批量扫描
  • 原文地址:https://www.cnblogs.com/fdzang/p/12152807.html
Copyright © 2020-2023  润新知