用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 相关文章推荐
js 图片轮播(5张图片)
Dec 30 Javascript
jquery判断checkbox(复选框)是否被选中的代码
Oct 20 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
Dec 11 Javascript
javascript 正则表达式相关应介绍
Nov 27 Javascript
Javascript事件实例详解
Nov 06 Javascript
select多选 multiple的使用示例
Jun 16 Javascript
总结JavaScript三种数据存储方式之间的区别
May 03 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
Sep 14 Javascript
JS自定义滚动条效果简单实现代码
Oct 27 Javascript
从0到1构建vueSSR项目之路由的构建
Mar 07 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
Nov 09 Javascript
vue将文件/图片批量打包下载zip的教程
Oct 21 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支持页面回退的两种方法
2008/01/10 PHP
mayfish 数据入库验证代码
2010/04/30 PHP
php生成随机密码的三种方法小结
2010/09/04 PHP
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
PHP实现的注册,登录及查询用户资料功能API接口示例
2017/06/06 PHP
js局部刷新页面时间具体实现
2013/07/04 Javascript
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
JS 页面计时器示例代码
2013/10/28 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
简介AngularJS的视图功能应用
2015/06/17 Javascript
使用jquery动态加载Js文件和Css文件
2015/10/24 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
2016/09/25 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
Vue keep-alive实践总结(推荐)
2017/08/31 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
[47:42]完美世界DOTA2联赛PWL S2 GXR vs Ink 第一场 11.19
2020/11/20 DOTA
Python中字典的基础知识归纳小结
2015/08/19 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
2016/05/27 Python
Python设计模式之中介模式简单示例
2018/01/09 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
2020/10/31 Python
请介绍一下Ant
2016/07/22 面试题
给酒店员工的表扬信
2014/01/11 职场文书
酒店节能降耗方案
2014/05/08 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
村创先争优活动总结
2014/08/28 职场文书
2014年维修电工工作总结
2014/11/20 职场文书