用node擼一個監(jiān)測復(fù)聯(lián)4開售短信提醒的實(shí)現(xiàn)代碼
背景
北美復(fù)仇者聯(lián)盟4首映電影票eBay上面已經(jīng)2500美元一張票了,為了避免搶不到票 寫了個監(jiān)控復(fù)仇者聯(lián)盟4開售就發(fā)送短信的腳本,這樣我們可以第一時(shí)間進(jìn)行搶票,畢竟搶到就是賺到 。。。
思路
node編寫一個抓包腳本監(jiān)測在售的電影中是否有 “復(fù)仇者聯(lián)盟” 這幾個關(guān)鍵詞,如果有則直接發(fā)送短信~
實(shí)現(xiàn)
要想實(shí)現(xiàn)我的想法,運(yùn)用到了2個node庫:superagent 和 cheerio ,分別實(shí)現(xiàn)發(fā)送請求和dom節(jié)點(diǎn)分析。
設(shè)置定時(shí)器
這里用 setInterval 來實(shí)現(xiàn)定時(shí),每隔60s 抓取一次網(wǎng)頁數(shù)據(jù)
function intervalFunc() { superagent.get('https://maoyan.com/films?sortId=2').end((err, res) => { if (err) { console.log(` - ${err}`) } else { getFilms(res) } }); } var timer = setInterval(intervalFunc, 10000);
分析dom節(jié)點(diǎn)
我們只需要獲取到 div 的class 是 channel-detail 就可以了 ~
let getFilms = (res) => { let $ = cheerio.load(res.text); var isOn = false $('.channel-detail').each((idx, ele) => { if ($(ele).text().indexOf("復(fù)仇") != -1) { isOn = true } }); if (isOn) { for (const phone of phoneArray) { sendMessage(phone) } clearInterval(timer) } else { console.log("影片未上映....") } };
這里如果監(jiān)測到影片已經(jīng)上映了記得關(guān)閉定時(shí)器 ~
發(fā)送短信
function sendMessage(mobile) { var http = require('http'); var username = ""; var secretkey = ""; var path = "/sms_token?ddtkey=" + username + "&secretkey=" + secretkey + "&mobile=" + mobile + "&content=Go" var options = { host: '112.124.17.46', port: 7001, path: path, method: 'GET', headers: { 'Content-Type': 'application/json' } }; http.get(options, function (res) { var resData = ""; res.on("data", function (data) { resData += data; }); res.on("end", function () { console.log("影片已經(jīng)上映,短信通知成功") }); }) }
總結(jié)
1、node 抓包采用 superagent 和 cheerio
2、定時(shí)器關(guān)閉采用 clearInterval
完整的代碼地址:https://github.com/ChengRuipeng/maoyan
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
node文件資源管理器讀取視頻信息從零實(shí)現(xiàn)
這篇文章主要為大家介紹了node文件資源管理器讀取視頻信息從零實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12socket.io學(xué)習(xí)教程之基礎(chǔ)介紹(一)
socket.io提供了基于事件的實(shí)時(shí)雙向通訊,所以下面這篇文章主要介紹了關(guān)于socket.io的相關(guān)資料,主要介紹了學(xué)習(xí)socket.io的基礎(chǔ)知識,需要的朋友可以參考借鑒,下面來一起看看吧。2017-04-04windows實(shí)現(xiàn)npm和cnpm安裝步驟
這篇文章主要介紹了windows實(shí)現(xiàn)npm和cnpm安裝步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10node實(shí)現(xiàn)登錄圖片驗(yàn)證碼的示例代碼
這篇文章主要介紹了node實(shí)現(xiàn)登錄圖片驗(yàn)證碼的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04npm出現(xiàn)Cannot?find?module?'XXX\node_modules\npm\bin\np
最近在啟動項(xiàng)目的時(shí)候會報(bào)這個錯就是npm丟失,所以下面這篇文章主要給大家介紹了關(guān)于npm出現(xiàn)Cannot?find?module?'XXX\node_modules\npm\bin\npm-cli.js'錯誤的解決方法,需要的朋友可以參考下2022-08-08NodeJs實(shí)現(xiàn)簡易WEB上傳下載服務(wù)器
這篇文章主要為大家詳細(xì)介紹了NodeJs實(shí)現(xiàn)一個簡易WEB上傳下載服務(wù)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08npm使用淘寶鏡像安裝時(shí)報(bào)錯的解決方案(npm淘寶鏡像到期盡快切換)
npm 淘寶鏡像到期了,盡快切換,本文給大家介紹了npm使用淘寶鏡像安裝時(shí)報(bào)錯的解決方案,文中通過代碼示例和圖文講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-02-02