V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
vicalloy
V2EX  ›  分享创造

可以挂在服务器的 12306 刷票脚本

  •  
  •   vicalloy ·
    vicalloy · 2017-01-22 21:29:46 +08:00 · 5258 次点击
    这是一个创建于 2847 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址: https://github.com/vicalloy/12306-ticket-checker

    只是在刷出票后发送提醒消息,并不能自动购票。在收到消息后还是得拼手速。 脚本用 Python3 实现,可挂到服务器上 24 小时刷。

    前言

    总体来说火车票应当是越来越好买,因此一直没怎么太操心。哪知道今年票似乎没有很好买,最近在 12306 刷了几天一张票都没看到。广大抢票软件又都只支持 Windows 系统,作为 Mac 用起来不是太方便。

    写了个脚本挂到服务器,希望收到消息。

    注意事项

    • 脚本采用 python3 开发,请使用 python3 运行该脚本
    • 在刷到票后,采用 Slack 发送通知消息,因此请先创建 Slack 的 Team 。在创建好 Team 后,创建一个名叫ticket的 channel,并申请一个 Bot 用于发消息。如希望采用其他的通知途径,请自行修改 12306.py 中的 send_message 实现。

    使用方法

    • 安装依赖库
        pip3 install requests
        pip3 install slackclient
    
    • 复制conf.py.sample并修改文件名为conf.py
    • 根据注释修改刷票条件
    • python3 12306.py启动脚本,验证脚本是否可以正确执行。
      • 注:你可以用 supervisor 来管理该脚本

    配置文件

    SLACK_TOKEN = ''  # slack bot 的 SLACK_API_TOKEN ,如需要用其消息通知机制,请修改 send_message 实现
    
    TRAIN_DATES = ['2017-02-01', '2017-02-02', '2017-02-03', '2017-02-04']  # 需要抢票的日期
    
    FROM_STATIONS = ['WHN']  # 出发站点,城市对应的编码请自行根据 https://kyfw.12306.cn/otn/leftTicket/init 找到
    
    TO_STATIONS = ['HZH']  # 达到站
    
    TICKET_TYPES = ['swz', 'zy', 'ze', 'rw', 'yw']  # 车票类型,参考 TICKET_TYPE_MAP
    
    NEED_COUNT = 2  # 需要抢票的张数,低于这个数不提示
    

    特别说明

    只是为了自己抢票用,因此弄的比较简单有挺多不完善的地方。

    • 提醒消息没有做过滤设置,因此刷到票后可能会一直刷出重复的消息。
    • 只能远程到服务器上去停止脚本,如果买到了票又不是很方便上服务器,还是会一直受到骚扰消息。注:为了防止骚扰消息可以在手机上登出 Slack 。
    11 条回复    2017-01-28 13:37:45 +08:00
    v1024
        1
    v1024  
       2017-01-22 21:34:21 +08:00 via iPhone
    精神可嘉,没什么用。
    rainfox
        2
    rainfox  
       2017-01-22 21:34:54 +08:00
    刷到后被抢票软件秒了,这有什么意义?点燃了希望再失望。。。
    Cabana
        3
    Cabana  
       2017-01-22 21:44:31 +08:00 via Android
    出票时间不是都知道的吗?
    emberzhang
        4
    emberzhang  
       2017-01-22 21:46:31 +08:00 via iPhone
    为啥要 24 小时刷, 12306 每天不是只开 8 小时么
    HLT
        5
    HLT  
       2017-01-22 22:12:20 +08:00
    。。。不能自动购票 这个真没啥用, LZ 真想多了!
    Antidictator
        6
    Antidictator  
       2017-01-23 09:18:48 +08:00 via Android
    crytis
        7
    crytis  
       2017-01-23 10:56:20 +08:00 via iPhone
    直接去阿里云租个 Windows 服务器,按需使用的那种,挂上刷票软件就行了
    vicalloy
        8
    vicalloy  
    OP
       2017-01-23 11:18:50 +08:00
    事实证明还真是我想多了。
    今天 10 点 40 分的时候刷出一大堆的票,立马用手机登陆进去,连个票的影子都没看到。
    应当是全自动抢票软件太多,出票后第一时间就全部买走了。
    HLT
        9
    HLT  
       2017-01-24 23:51:13 +08:00
    @vicalloy 对哦。。各种旅游出行 APP 全都有自动刷票购票功能 。。。。还轮得上咱手动抢嘛。。。
    JackyBao
        10
    JackyBao  
       2017-01-25 22:24:36 +08:00 via Android
    记得我以前大学选课就是这么刷的,挂着等人退出来,让后马上选进去,一步到位。
    lawder
        11
    lawder  
       2017-01-28 13:37:45 +08:00
    12306 网站都可以自动下单了,年前刷了几张,也是用 Mac
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2934 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 02:44 · PVG 10:44 · LAX 18:44 · JFK 21:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.