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