V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiaoxina
V2EX  ›  Node.js

Nodejs 版 12306 查询余票小工具

  •  
  •   xiaoxina · 2020-10-19 09:31:37 +08:00 · 4323 次点击
    这是一个创建于 1515 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Nodejs 版 12306 查询余票小工具

    一个 Nodejs 写的查询 12306 余票的小工具,查询到指定车次的车票后会反馈到邮箱

    github: https://github.com/isxiaoxin/12306

    gitee: https://gitee.com/isxiaoxin/nodejs_12306

    已实现的功能

    • 根据中文站点名称去查找对应的站点代号

    • 支持查询单个 /多个车次数据

    • 定时监控余票数量

    • 检测到指定车次票数的变化后发送新结果到邮箱

    使用方法

    1 、把代码克隆到本地

    $ git clone https://github.com/isxiaoxin/12306.git
    

    2 、安装依赖

    $ npm install
    // 或 yarn install
    

    3 、配置 config.js 内的信息

    车次信息需要自行到 12306 网站搜集

    date: '2020-09-03', // 出发日期 格式:yyyy-mm-dd 如:2020-08-31
    from: '广州', // 起始站中文
    to: '郴州', // 到达站中文
    type: 'ADULT', // 乘客类型 成人:ADULT,学生:0X00
    trainNo: 'G822', // 需要监测的车次 多个车次用|隔开 如:G822|G1112 可忽略大小写
    mail: '', // 邮箱地址 默认是 qq 邮箱 其他邮箱需要改 nodemailer 的配置
    pass: '', // 邮箱的 smtp 授权码 不是 qq 密码 放心填写
    

    4 、执行命令

    node start.js
    

    执行之后是这样的 终端也能看到此次查询的信息 this.logger 为 true 时会输出 可自行更改

    image-20200903101729933

    默认每隔 1 分钟查询余票,有需要可自行调整 start.js 里的 this.interval

    检测到余票后会收到这样一个邮件,可自行调整邮件模板或样式

    小鑫

    其他

    • 在不使用进程守护的情况下只能通过 ctrl + c 关闭查询(小菜鸡没用过 mac 哈哈)

    • 有需要进程守护的可自行使用 pm2 - https://www.jianshu.com/p/e15fd72727fe

    • 如果 setInterval 满足不了需求可自行使用 node-schedule

    最后

    目前只是实现出来第一版,有任何问题或建议可以给我提 issue 或者咨询我,代码里有我的联系方式噢~

    11 条回复    2020-11-02 16:44:45 +08:00
    Arrowing
        1
    Arrowing  
       2020-10-19 10:03:10 +08:00 via Android
    可以把其他类型的票搞上
    仅供参考,哈哈
    https://github.com/arrowing/dig-12306
    dtgxx
        2
    dtgxx  
       2020-10-19 10:56:10 +08:00
    不错不错,赞一个!虽然用不上~哈哈
    magicZ
        3
    magicZ  
       2020-10-19 21:38:01 +08:00
    挺好,最近正在学 node
    xiaoxina
        4
    xiaoxina  
    OP
       2020-10-19 21:42:17 +08:00 via iPhone
    @magicZ 3q 有问题可以一起探讨鸭
    xiaoxina
        5
    xiaoxina  
    OP
       2020-10-19 21:42:32 +08:00 via iPhone
    @dtgxx 哈哈 感谢支持
    xiaoxina
        6
    xiaoxina  
    OP
       2020-10-19 21:43:44 +08:00 via iPhone
    @Arrowing 哈哈 膜拜大佬
    widem
        7
    widem  
       2020-10-29 15:00:26 +08:00
    现在 12306 的后补机制,在获取到车站放票,没来的及购买票会不会就没了
    cao2ji
        8
    cao2ji  
       2020-10-29 16:28:24 +08:00
    需要做一个类似监控软件,求个大佬联系方式
    xiaoxina
        9
    xiaoxina  
    OP
       2020-11-02 15:44:30 +08:00
    @widem 是的
    xiaoxina
        10
    xiaoxina  
    OP
       2020-11-02 15:45:40 +08:00
    @cao2ji vx: xiaosin2333
    cao2ji
        11
    cao2ji  
       2020-11-02 16:44:45 +08:00
    @xiaoxina 已加
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2967 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:43 · PVG 19:43 · LAX 03:43 · JFK 06:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.