美文网首页
12306抢票-python

12306抢票-python

作者: wxrg2012 | 来源:发表于2020-06-19 10:52 被阅读0次

    本文旨在帮助抢票困难的同学,在逢年过节的时候多点购票机会,代码是借鉴别人的,主要帮助小白同学运行大神的抢票程序。只需小白同学按照以下教程,就可以初步使用该程序抢票啦。

    第一种抢票程序

    1 Docker安装

    1.1 Mac环境下安装

    参考网站
    建议选择手动安装,安装完毕后,选择(Check for Updates)更新到最新版本

    1.2 centos环境下安装

    前提条件:CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上,通过指令uname -r 查看自己的系统版本

    移除旧的版本:

    $ sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-selinux \
                      docker-engine-selinux \
                      docker-engine
    

    2 配置项目

    2.1下载代码

    git clone https://github.com/testerSunshine/12306 
    

    或直接访问https://github.com/testerSunshine/12306 下载代码
    点击下图红框中的下载按钮即可

    image.png

    2.2下载验证码识别模型

      1. 模型下载链接:https://pan.baidu.com/s/1rS155VjweWVWIJogakechA  密码:bmlm
         群里面也可以下载
      2. git仓库下载:https://github.com/testerSunshine/12306model.git
    

    把模型直接放在12306项目的根目录。

    2.3配置文件 TickerConfig.py

    • 根据自己需要修改好配置文件:TickerConfig.py
    • 修改配置文件TickerConfig.py中的变量
      AUTO_CODE_TYPE = 2
      HOST = "captcha:80" #这里很重要,这是本地打码服务器的配置
      AUTO_CODE_TYPE = 3
      STATION_DATES = ["2020-06-24"] #日期要核查清楚,多个日期,只需在数组后面追加,类似["2020-06-24","2020-06-25"]
      用户名、密码(12306官网)、乘客名、车次、座次根据个人需求填写即可,文件中都有示例和注释。
    • 购票提醒设置
      1.邮件通知
      EMAIL_CONF = {
      "IS_MAIL": True,
      "email": "******@163.com",
      "notice_email_list": "******@163.com",
      "username": "******@163.com",
      "password": "******",
      "host": "smtp.163.com",
      }
      其中email、notice_email_list、username填写一样即可,password是指smtp服务的授权码,获取方法如下:
      打开pc端的网易邮箱,登入后在设置中开启SMTP服务(图中第3步),开启后点击第四步的按钮,最后用手机扫第五的二维码生成授权码。


      image.png

    2.微信公众号通知
    需要前往 http://sc.ftqq.com/3.version 扫码绑定获取 SECRET 并关注获得抢票结果通知的公众号,会生成secret码。
    SERVER_CHAN_CONF = {
    "is_server_chan": True,
    "secret": "*****"
    }
    secret处填写上述生成的secret码。

    • COOKIE设置
      1.COOKIE_TYPE = 3 #自己打开浏览器在headers-Cookies中抓取RAIL_DEVICEID和RAIL_EXPIRATION
      1. RAIL_DEVICEID和RAIL_EXPIRATION抓取方法
        (1)用Chrome浏览器打开12306官网,并登陆。
        (2)如下图步骤获取RAIL_DEVICEID值,图中箭头所指就是该值。
        其中,1.步骤是指在12306网页中,点击鼠标右键,然后点击检查按钮,出现步骤2中的对话框。


        image.png

        (3)如下图步骤获取RAIL_EXPIRATION值,图中箭头所指就是该值。


        image.png
        通过上述步骤获取RAIL_DEVICEID和RAIL_EXPIRATION值后,在配置文件(TickerConfig.py)中相应位置填写即可,如下:
        RAIL_EXPIRATION = "159094482****"
        RAIL_DEVICEID="kLkp9VAA8Nf2l41AjBzg-0Js1BQnKZbiRGhW06904zy5WDmWwEEjB_*****"

    3 开始抢票

    • 前提条件
      • 请确认你安装的docker版本为18.09及以上: docker -v
      • 请确认你安装的docker-compose版本为1.23.2及以上: docker-compose -v
      • 请根据自己需要修改好配置文件:TickerConfig.py
    • 运行命令:
      • 开始抢票:docker-compose up --build -d
      • 停止抢票:docker-compose down
      • 查看抢票log: docker logs --follow ticket

    相关文章

      网友评论

          本文标题:12306抢票-python

          本文链接:https://www.haomeiwen.com/subject/oocvxktx.html