用爬蟲+釘釘機(jī)器人來簡化工作

我們開發(fā)的項(xiàng)目為了安全,密碼都是臨時(shí)生成的进副,需要老師登陸網(wǎng)站獲取这揣,每次登陸挺麻煩的,我覺得這個(gè)過程可以自動(dòng)化去做影斑。

需要做的事情有自動(dòng)登陸给赞,自動(dòng)獲取密碼,也可以自動(dòng)發(fā)到釘釘群里矫户。

自動(dòng)登陸因?yàn)橛袌D形驗(yàn)證碼在片迅,不是很好做,所以我換了一種方式皆辽,登錄后獲取cookie保存下來柑蛇,通過定時(shí)的請(qǐng)求來刷新session和cookie生效時(shí)間,只要保證一定頻率的請(qǐng)求就永遠(yuǎn)不會(huì)失效驱闷。

自動(dòng)獲取密碼有對(duì)應(yīng)的接口耻台,剩下的就是自動(dòng)發(fā)到釘釘群里了,其實(shí)這個(gè)也簡單空另,釘釘群有機(jī)器人盆耽,可以通過一個(gè)webhook來發(fā)送消息給機(jī)器人,機(jī)器人發(fā)到群里扼菠,還可以@某些人摄杂,支持markdown,鏈接循榆,文字等析恢。

詳情見: https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.45484a97s4tZLA&treeId=257&articleId=105735&docType=1

接下來工作很明了,使用axios發(fā)請(qǐng)求秧饮,使用cheerio解析dom映挂,然后通過webhook來吧密碼轉(zhuǎn)發(fā)到群里。同時(shí)為了保證cookie的有效性浦楣,會(huì)定時(shí)刷新袖肥,機(jī)器人最多一分鐘20條消息,我把時(shí)間間隔定在了10秒振劳。

還有一個(gè)問題是臨時(shí)密碼的有效期是24小時(shí)椎组,我本來想找到生成密碼的接口,一旦獲取不到历恐,就刷新寸癌,然后在獲取专筷。但是生成密碼的接口沒找到,就暫時(shí)只做到了這樣蒸苇,可以獲取磷蛹,如果失效了再手動(dòng)去生成下。以后會(huì)考慮優(yōu)化溪烤。

代碼24小時(shí)跑在服務(wù)器上味咳。

代碼如下(保密數(shù)據(jù)隱藏了):

const axios = require('axios');
const chalk = require('chalk');
const cheerio = require('cheerio');


const http = axios.create({
    baseURL: 'http://xxx/',
    headers: {
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
        'Accept-Encoding': 'gzip, deflate',
        'Accept-Language': 'zh-CN,zh;q=0.9',
        'Connection': 'keep-alive',
        'Cookie': "td_cookie=18446744073516097524; cloudwise_client_id=36e51b13-36ec-2435-92bf-cc43b54dd8a3; CAKEPHP=ktejrvcf56cf7e8m114j14g4q3; CW_Start=1537522907731",
        'Host': 'xxx.com',
        'Referer': 'http://xxx',
        'Upgrade-Insecure-Requests': 1,
        'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
     }
});

const httpGet = (url) => {
    return new Promise((resolve, reject) => {
        http.get(url).then((res) => {
            console.log(chalk.green('res:'), res.status);
            resolve(res.data);
        }).catch((...args) => {
            reject(...args);
        });
    })
}

const httpPost = (url, data) => {
    return new Promise((resolve, reject) => {
        http.post(url, data).then((res) => {
            console.log(chalk.green('res:'), res.status);
            resolve(res.data);
        }).catch((...args) => {
            reject(...args);
        });
    })
}

const queryTempPassword = () => httpGet('/getPasssSuccess');

const generateTempPassword = () => httpPost('/randomPassword', {
    send: '生成臨時(shí)密碼'
});

const sendMessageToRobot = (msg) => {
    axios({
        url:'https://oapi.dingtalk.com/robot/send?access_token=XXXXX',
        method: 'post',
        data: {
            "msgtype": "text",
            "text": {
                "content": msg
            }
        }
    }).then((res) =>{
        console.log(res.data);
    })
}

setInterval(() => {
    queryTempPassword().then((data) => {
        const $ = cheerio.load(data);
        console.log('臨時(shí)密碼:' + $('#resText').text());
        sendMessageToRobot("臨時(shí)密碼:" + $('#resText').text());
    }).catch((err) => {
        console.log(chalk.red(err));
    });
},10000,0);

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市檬嘀,隨后出現(xiàn)的幾起案子槽驶,更是在濱河造成了極大的恐慌,老刑警劉巖鸳兽,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掂铐,死亡現(xiàn)場離奇詭異,居然都是意外死亡揍异,警方通過查閱死者的電腦和手機(jī)全陨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來衷掷,“玉大人辱姨,你說我怎么就攤上這事」鞅睿” “怎么了炮叶?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵碗旅,是天一觀的道長渡处。 經(jīng)常有香客問我,道長祟辟,這世上最難降的妖魔是什么医瘫? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮旧困,結(jié)果婚禮上醇份,老公的妹妹穿的比我還像新娘。我一直安慰自己吼具,他們只是感情好僚纷,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拗盒,像睡著了一般怖竭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上陡蝇,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天痊臭,我揣著相機(jī)與錄音哮肚,去河邊找鬼。 笑死广匙,一個(gè)胖子當(dāng)著我的面吹牛允趟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鸦致,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼潮剪,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了分唾?” 一聲冷哼從身側(cè)響起鲁纠,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鳍寂,沒想到半個(gè)月后改含,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡迄汛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年捍壤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鞍爱。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鹃觉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出睹逃,到底是詐尸還是另有隱情盗扇,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布沉填,位于F島的核電站疗隶,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏翼闹。R本人自食惡果不足惜斑鼻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望猎荠。 院中可真熱鬧坚弱,春花似錦、人聲如沸关摇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽输虱。三九已至些楣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背戈毒。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國打工艰猬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人埋市。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓冠桃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親道宅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子食听,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容