用node撸一个监测复联4开售短信提醒的实现代码


Posted in Javascript onApril 10, 2019

背景

北美复仇者联盟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节点

用node撸一个监测复联4开售短信提醒的实现代码

我们只需要获取到 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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
Dec 22 Javascript
lyhucSelect基于Jquery的Select数据联动插件
Mar 29 Javascript
深入分析js中的constructor和prototype
Apr 07 Javascript
jquery重新播放css动画所遇问题解决
Aug 21 Javascript
JavaScript中实现map功能代码分享
Jun 11 Javascript
Node.js中使用socket创建私聊和公聊聊天室
Nov 19 Javascript
JavaScript实现的简单Tab点击切换功能示例
Jul 06 Javascript
实现Vue的markdown文档可以在线运行的方法示例
Dec 11 Javascript
react写一个select组件的实现代码
Apr 03 Javascript
详解element-ui中el-select的默认选择项问题
Aug 02 Javascript
JavaScript RegExp 对象用法详解
Sep 24 Javascript
Node.js学习之内置模块fs用法示例
Jan 22 Javascript
从0到1搭建Element的后台框架的方法步骤
Apr 10 #Javascript
详解vue.js移动端配置flexible.js及注意事项
Apr 10 #Javascript
小程序分享模块超级详解(推荐)
Apr 10 #Javascript
关于JavaScript 数组你应该知道的事情(推荐)
Apr 10 #Javascript
Vue中computed、methods与watch的区别总结
Apr 10 #Javascript
JavaScript 性能提升之路(推荐)
Apr 10 #Javascript
详解vue-cli3 中跨域解决方案
Apr 10 #Javascript
You might like
有关 PHP 和 MySQL 时区的一点总结
2008/03/26 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
php实现将数组转换为XML的方法
2015/03/09 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
2017/08/15 PHP
php中使用array_filter()函数过滤数组实例讲解
2021/03/03 PHP
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
2015/01/28 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
jQuery获取Table某列的值(推荐)
2017/03/03 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
jQuery+CSS实现的标签页效果示例【测试可用】
2018/08/14 jQuery
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
从零学Python之引用和类属性的初步理解
2014/05/15 Python
python使用calendar输出指定年份全年日历的方法
2015/04/04 Python
python字符串的常用操作方法小结
2016/05/21 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
python中线程和进程有何区别
2020/06/17 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
东芝官网商城:还原日式美学,打造美好生活
2018/12/27 全球购物
Capitol Lighting的1800lighting.com:住宅和商业照明
2019/04/10 全球购物
接待员岗位责任制
2014/02/10 职场文书
违反校纪校规检讨书
2014/02/15 职场文书
技术岗位竞聘演讲稿
2014/05/16 职场文书
银行求职信怎么写
2014/05/26 职场文书
房地产经营管理专业自荐信
2014/09/02 职场文书
普通党员对照检查材料
2014/09/24 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
小学六年级毕业感言
2015/07/30 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书
Python快速实现一键抠图功能的全过程
2021/06/29 Python