nodejs实现简历自动刷新(无头浏览器测试功能)

万马奔腾
• 阅读 3685

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'); 
这样我们一个简单的定时刷新任务程序就完成
点赞
收藏
评论区
推荐文章
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Karen110 Karen110
4年前
【前端自动化】如何使用Node.js实现热重载页面
前言前不久我结合browsersyncgulpgulpnodemon实现了一款生产环境热更新(我之前理解有点偏差,应该定义为热更新,不是热重载)的项目脚手架,那么,今天我们将使用Node.js实现一个热重载页面。那么,我今天就总结一下吧,以防止大家也跟我一样。热重载所谓热重载就是页面每次改动,不需要手动去刷新,可自动刷新。热更新浏览器的无刷新更新,允许在
科林-Colin 科林-Colin
4年前
pm2 基础使用
pm2(https://github.com/foreverjs/forever)和forever(https://github.com/foreverjs/forever)是启动Nodejs服务常用到的两个工具。使用这两个指令可以使node服务在后台运行(类似于linux的nohup),另外它们可以在服务因异常或其他原因被杀掉后进行自动重启。由于
徐小夕 徐小夕
4年前
如何使用nodejs自动发送邮件?
之前用Nodejs做了很多服务端模块,最近抽空复盘一下,接下来笔者将介绍如何使用Nodejs来自动向用户发送邮件.笔者将详细介绍自动发送邮箱的实现方案,以及通过一个实际的案例来带大家掌握使用nodejs自动发送邮件,最后会介绍一些实际的应用场景,来加深对该方案的理解,达到学以致用的目的.实现方案实现自动发送邮件笔者采用了基于Nod
Stella981 Stella981
4年前
Spring Cloud 系列之 Config 配置中心(二)
本篇文章为系列文章,未读第一集的同学请猛戳这里:SpringCloud系列之Config配置中心(一)(https://my.oschina.net/u/4126211/blog/4274304)本篇文章讲解Config如何实现配置中心自动刷新。配置中心自动刷新  点击链接观看:配置中心自动刷新视频(http
Stella981 Stella981
4年前
Spring Cloud Alibaba Nacos Config 的使用
一、需求主要实现nacos作为配置中心的一些使用方法。二、实现功能1、加载productproviderdev.yaml配置文件2、实现配置的自动刷新3、实现加载多个配置文件
Stella981 Stella981
4年前
Linux日志安全分析技巧
0x00前言我正在整理一个项目,收集和汇总了一些应急响应案例(不断更新中)。GitHub地址:https://github.com/Bypass007/EmergencyResponseNotes本文主要介绍Linux日志分析的技巧,更多详细信息请访问Github地址,欢迎Star。0x01日志简介Lin
贾迎春 贾迎春
2年前
图形验证码无痕刷新
在不刷新浏览器的情况下,实现页面的刷新。本文采用KgCaptcha验证码,实现无痕刷新验证码,下面是总结验证码不同情形下刷新的方法。
产品经理克星 产品经理克星
3个月前
AI得贤人才寻访智能体来袭!提升招聘效率10到100倍,解除您刷简历的痛
全流程自动化:从识人到沟通,一体化执行AI得贤人才寻访智能体并非单一功能的自动消息助手,而是一套完整的招聘自动化系统。它可在无需人工干预的情况下,独立完成从简历筛选、初步沟通、简历回收到系统同步的完整流程。1.即启即用:仅需3060秒完成初始化,即可自动启