nodejs實現簡歷自動重新整理(無頭瀏覽器測試功能)

Besmall發表於2019-02-16

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`); 
這樣我們一個簡單的定時重新整理任務程式就完成

相關文章