国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

用node擼一個監測復聯4開售短信提醒的實現代碼

2019-11-19 11:49:53
字體:
來源:轉載
供稿:網友

背景

北美復仇者聯盟4首映電影票eBay上面已經2500美元一張票了,為了避免搶不到票 寫了個監控復仇者聯盟4開售就發送短信的腳本,這樣我們可以第一時間進行搶票,畢竟搶到就是賺到 。。。

思路

node編寫一個抓包腳本監測在售的電影中是否有 “復仇者聯盟” 這幾個關鍵詞,如果有則直接發送短信~

實現

要想實現我的想法,運用到了2個node庫:superagent 和 cheerio ,分別實現發送請求和dom節點分析。

設置定時器

這里用 setInterval 來實現定時,每隔60s 抓取一次網頁數據

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節點

我們只需要獲取到 div 的class 是 channel-detail 就可以了 ~

let getFilms = (res) => {  let $ = cheerio.load(res.text);  var isOn = false  $('.channel-detail').each((idx, ele) => {    if ($(ele).text().indexOf("復仇") != -1) {      isOn = true    }  });  if (isOn) {    for (const phone of phoneArray) {      sendMessage(phone)    }    clearInterval(timer)  } else {    console.log("影片未上映....")  }};

這里如果監測到影片已經上映了記得關閉定時器 ~

發送短信

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("影片已經上映,短信通知成功")    });  })}

總結

1、node 抓包采用 superagent 和 cheerio
2、定時器關閉采用 clearInterval

完整的代碼地址:https://github.com/ChengRuipeng/maoyan

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 晋宁县| 遵义县| 永和县| 浮梁县| 博野县| 板桥市| 重庆市| 昔阳县| 腾冲县| 宜川县| 手机| 宁晋县| 体育| 图们市| 新丰县| 宿迁市| 凉山| 鹤壁市| 基隆市| 九寨沟县| 监利县| 万山特区| 凉城县| 大庆市| 郯城县| 灵台县| 侯马市| 广丰县| 东山县| 扎赉特旗| 融水| 昌平区| 苗栗县| 黑水县| 江永县| 乌鲁木齐县| 砚山县| 清新县| 陇川县| 成都市| 方城县|