抢火车票程序-其实只是个监听+提醒的定时任务实现

用node写一个爬虫,每过一分钟就爬取12306,查询某一辆火车是否还有余票,有余票就给我发一封邮件,提醒我有余票了,然后我立马登录12306改签。抢票系统。

这个思路的有两点前提,第一、要自己提前确定好想买哪一辆火车,包括:火车车次,日期。第二、自己要经常在电脑前,只要一来邮件就去12306买票,这对于程序猿来说已经满足了。

代码实现

要想实现我的想法,运用到了2个node库:nodemailernode-schedule,分别实现邮件和定时执行功能。

因为12306是https协议的,所以node的http模块还是不行,这里可以用node的https模块。

当然12306还需要有浏览器证书,我代码里已经有了,大家下下来就可以用。

代码:

下面说下上述代码中的config里面的参数如何找到:

譬如我要找北京到厦门的火车:

首先进入12306余票查询页面(https://kyfw.12306.cn/otn/leftTicket/init):

v2-ba0f99439df7591c65705ba8be16e296_b

点击查询之后控制台出现以下信息:

v2-21742b6c003cd5766425326ca5a46815_b

看最后一个点击打开:

v2-6f6c73090430c2cd3c2ae2344d1dc55b_b

看到红框里的内容就是config里面需要配置的选项了。

然后运行node main.js,然后一直放在那运行(可以放到自己的服务器上去运行)

运行结果:

v2-6fe037955f7494b4e979304fb5ffee81_b
v2-d21f79b5938c8947bac1c4c723faaf55_b

总结

1. 我这个如果想用这个买票,你只要配置config,替换里面的邮箱和密码(你自己的邮箱),这样就会收到邮件通知了。

2. 目前我已经用这个把之前买的3张无座全都改签为硬座票了(因为有人要退票啊,哈哈)

3. 大家最好用163邮箱和163的手机客户端吧,通知及时,一有邮件我的手机就会震动提示。

承接各种网站开发与修改、爬虫、数据采集分析、小程序等任务

Html+Css+JS+PHP+Nodejs+Python

专治网站各种不服

一起探讨,互相学习,共同进步!有事儿您说话。

This entry was posted in NodeJS and tagged by 织梦先生. Bookmark the permalink.