背景

北美复仇者联盟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)// }sendWx()clearInterval(timer)} else {console.log("影片未上映....")}
};
复制代码

这里如果监测到影片已经上映了记得关闭定时器 ~

发送微信消息

这里调用了 Server酱 的微信服务,key换成你们自己的就可以了 ~

function sendWx() {var http = require('http');var key = 'SCU48466Tf3f96d026cbcd4d4ab8f05fa7d04ee2c5cada058e0522'var path =  '.send?text='var text = '复仇者联盟4电影票已经开售啦,快去购票吧!'http.get('http://sc.ftqq.com/' + key + path + text,function(data){var str="";data.on("data",function(chunk){str+=chunk;})data.on("end",function(){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

完整的代码地址:github.com/ChengRuipen…

转载于:https://juejin.im/post/5cabf3eaf265da038412695f

用node撸一个监测复联4开售提醒相关推荐

  1. 使用Node.js手撸一个建静态Web服务器,内部CV指南

    文章里有全部代码,也可以积分下载 操作步骤如上图 文章结束 话说这个键盘真漂亮~~ 文章目录 使用Node.js手撸一个建静态Web服务器 一.动静态服务器的概念 1.1 静态Web服务器概念 1.2 ...

  2. Vchat — 从头到脚,撸一个社交聊天系统(vue + node + mongodb)

    前言 项目开始是因为工作需要一个聊天室功能,但是因为某些原因最终选用的是基于xmpp协议的Strophe.js写的.于是就想用node自己写一套,本来只是想简单的写个聊天页面,但是写完了又不满意,所以 ...

  3. 干撸一个Node环境的PDF生成服务

    干撸一个Node环境的PDF生成服务 用到的库 介绍 代码片段 Http请求处理 生成PDF 样式展示 签名图片处理 PDF排版 结语 用到的库 express:Express 是一个保持最小规模的灵 ...

  4. 【从头到脚】撸一个多人视频聊天 — 前端 WebRTC 实战(一)

    前言 [ 从头到脚 ]会作为一个系列文章来发布,它包括但不限于 WebRTC 多人视频,预计会有: WebRTC 实战(一):也就是本期,主要是基础讲解以及一对一的本地对等连接,网络对等连接. Web ...

  5. 呆呆带你手撸一个思维导图-基础篇

    希沃ENOW大前端 公司官网:CVTE(广州视源股份) 团队:CVTE旗下未来教育希沃软件平台中心enow团队 「本文作者:」 前言 你盼世界,我盼望你无bug.Hello 大家好,我是霖呆呆! 哈哈 ...

  6. 手撸一个npm包,安利一下duiba-sprite

    背景 我所在组负责我司线上H5互动小游戏的开发,其中一部分开发者负责皮肤的开发.大致流程为:视觉出psd,开发者切图,开发者开发,开发者上传皮肤代码,运营验收.这里边有个奇葩的动作:开发者切图,为什么 ...

  7. 利用 Laravel 花 2 小时撸一个 RSS 生成器

    Wait no longer! Create RSS feeds for all websites you care about and read them from the comfort of y ...

  8. uglifyjs报错 webpack_基于vue2.X的webpack基本配置,教你手动撸一个webpack4的配置

    webpack说复杂也不复杂.不复杂,核心概念不外乎是entry, output, loader, plugins.webpack4还新增了optimization选项,用于代码分割和打包优化.现在w ...

  9. vsc写vue生成基本代码快捷键_基于vue2.X的webpack基本配置,教你手动撸一个webpack4的配置...

    webpack说复杂也不复杂.不复杂,核心概念不外乎是entry, output, loader, plugins.webpack4还新增了optimization选项,用于代码分割和打包优化.现在w ...

最新文章

  1. extjs中滚动条属性_十分钟快速了解 JS 中的 offset、scroll、client
  2. MIT微软为AI量身打造了一套leetcode编程题
  3. SQL查询月初与月末时间
  4. iOS 下如果存在UIScrollerView 使用UIScreenEdgePanGestureRecognizer实现侧滑效果失效的问题...
  5. MapReduce单机提交(待稿)
  6. 虚拟化技术(1)——介绍
  7. Vue.js 学习笔记 九 v-if和v-show
  8. react+antd 权限管理 Tree树形控件
  9. java对象的创建、java分配内存的方式、指针碰撞、空闲列表
  10. 全国多省市遭暴雪袭击!这些路段交通受阻!
  11. 关闭vscode中的源代码管理
  12. [推荐]全球第一互动成人英语学习软件《ELLIS 英语培训系统》ISO下载
  13. 『The Book of Why』导言:思维胜于数据
  14. “东数西算”之五大热点问题探讨
  15. 变量的定义以及数据类型
  16. MTK Kernel-4.9 GPIO占用分析方法
  17. STC89C52RC的P4口的应用问题
  18. W ndows7有线网络连接,七仔教你学Windows7:如何连接网络 爱问知识人
  19. 推荐两款Linux服务器连接的好工具
  20. 从零开始实现基于go-zero框架的微服务电商项目(三)——gorm、redis、腾讯云SMS、validate、md5加密、日志输入到kafka的添加

热门文章

  1. Lattice Diamond设置Notepad++为默认编辑器
  2. Kubernetes Ingress Nginx使用
  3. 算法学习笔记--OJ入门
  4. 吉林大学-研究生课程-人工智能基础-基础、产生式系统
  5. javaSE 方法的使用(超详细)
  6. 关于网页右下角总出广告解决办法
  7. matlab中xlsread的用法
  8. 一阶系统开环传递函数表达式_15. 闭环系统的频域性能指标
  9. python3 [入门基础实战] 爬虫入门之xpath爬取脚本之家python栏目
  10. 我的世界服务器公会系统,《我的世界》服务器怎么建公会?