3

nodejs实现简历自动刷新

完整程序GitHub上面可以找到

GitHub地址

想想当时面试每天都刷新简历,有时候还会忘记,晚上回家没事么事干,做了个简单的无头浏览器刷新简历功能
用到的技术
nodejs+nightmare

实现的程序

首先我们需要引用nightmare
const Nightmare= require('nightmare');
我们要实例化nightmare
const nightmare = Nightmare({ show: true });
下面是我们需要的核心代码
.goto 链接要去的url
type模仿 寻找文本框添加自己要找到的文本框并加上需要的文本
click 模拟鼠标的点击事件 方法同上
wait 检查.wait()条件成功之间等待多长时间
.wait(()=>{})当中也可以放置函数(例如可以判断目标文件是否存在的函数)
.end()结束文件
nightmare
    //打开网址
    .goto("http://www.zhaopin.com/")
    //输入
    .type("[name='loginname']","*******")
    .type("[name='Password']","********")
    //点击事件(根据选择器)
    .click(".logbtn button")
    //等待
    .wait(2000)
    .goto("https://i.zhaopin.com/") 
    .wait(2000)
    .click("a.myLinkA.linkRefresh")
    .end()
    .wait(2000)
    .catch((error) => {
        console.error('Search failed:', error);
    });

自动刷新

这样做还是得我们手动刷新,那这样就达不到我们想样的结果,下面我们就将程序改为自动刷新
首先我们需要一个叫做cron的模块,这个模块是一个实现定时计划任务的模块
1、安装模块
$ npm install -g cron
2、启动一个任务
var cronJob = require("cron").CronJob;  
//每秒钟执行一次  
new cronJob('* * * * * *', function () {  
        //your job code here  
}, null, true, 'Asia/Chongqing');  
//每隔30秒执行一次,会在0秒和30秒处执行  
new cronJob('*/30 * * * * *', function () {  
        //your job code here  
}, null, true, 'Asia/Chongqing');  
//从早上8点到下午18点,每隔半个小时执行一次,会在0分和30分处执行  
new cronJob('* */30 8-18 * * *', function () {  
        //your job code here  
}, null, true, 'Asia/Chongqing');  
//在每天的10点和18点的第26分钟各执行一次  
new cronJob('* 26 10,18 * * *', function () {  
        //your job code here  
}, null, true, 'Asia/Chongqing');
var cronJob = require("cron").CronJob; 
3、不立即执行任务,人工启动
var jobid = new cronJob('* 26 10,18 * * *', function () {  
        //your job code here  
}, null, false, 'Asia/Chongqing');  
jobid.start();
4,设置时区
cronJob中的时间适合时区有关的,所以需要配合正确的时区,关于时间可以参考这篇文章: centos中查看系统时区和相关设置
5,动态设置时间
var jobid = new cronJob('* * * * * *', function () {  
        //your job code here  
}, null, false, 'Asia/Chongqing');  
var second = "12";  
var minute = "0";  
var hour = "8-19";  
var interval = "3";  
var time = require("cron").time(second + ' ' + minute + ' ' + hour+ '/' + interval + ' * * *', 'Asia/Chongqing');  
jobid.stop();  
jobid.setTime(time);  
jobid.start();
6,终止cron任务
var jobid = new cronJob('* 26 10,18 * * *', function () {  
        //your job code here  
}, null, true, 'Asia/Chongqing');  
...  
jobid.stop();
我在这个程序中做的是在每天的10点和18点的第30分钟各执行一次
var cronJob = require("cron").CronJob; 
//引入我的需要作业的程序
var App=require("./app");
new cronJob('* 30 09,18 * * *', function () {  
    console.log("开始执行定时更新任务");
    App.appcron();
}, null, true, 'Asia/Chongqing'); 
这样我们一个简单的定时刷新任务程序就完成

Besmall
334 声望37 粉丝