12306抢票-python

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

第一种抢票程序

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)