用node撸一个监测复联4开售提醒
背景
北美复仇者联盟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开售提醒相关推荐
- 使用Node.js手撸一个建静态Web服务器,内部CV指南
文章里有全部代码,也可以积分下载 操作步骤如上图 文章结束 话说这个键盘真漂亮~~ 文章目录 使用Node.js手撸一个建静态Web服务器 一.动静态服务器的概念 1.1 静态Web服务器概念 1.2 ...
- Vchat — 从头到脚,撸一个社交聊天系统(vue + node + mongodb)
前言 项目开始是因为工作需要一个聊天室功能,但是因为某些原因最终选用的是基于xmpp协议的Strophe.js写的.于是就想用node自己写一套,本来只是想简单的写个聊天页面,但是写完了又不满意,所以 ...
- 干撸一个Node环境的PDF生成服务
干撸一个Node环境的PDF生成服务 用到的库 介绍 代码片段 Http请求处理 生成PDF 样式展示 签名图片处理 PDF排版 结语 用到的库 express:Express 是一个保持最小规模的灵 ...
- 【从头到脚】撸一个多人视频聊天 — 前端 WebRTC 实战(一)
前言 [ 从头到脚 ]会作为一个系列文章来发布,它包括但不限于 WebRTC 多人视频,预计会有: WebRTC 实战(一):也就是本期,主要是基础讲解以及一对一的本地对等连接,网络对等连接. Web ...
- 呆呆带你手撸一个思维导图-基础篇
希沃ENOW大前端 公司官网:CVTE(广州视源股份) 团队:CVTE旗下未来教育希沃软件平台中心enow团队 「本文作者:」 前言 你盼世界,我盼望你无bug.Hello 大家好,我是霖呆呆! 哈哈 ...
- 手撸一个npm包,安利一下duiba-sprite
背景 我所在组负责我司线上H5互动小游戏的开发,其中一部分开发者负责皮肤的开发.大致流程为:视觉出psd,开发者切图,开发者开发,开发者上传皮肤代码,运营验收.这里边有个奇葩的动作:开发者切图,为什么 ...
- 利用 Laravel 花 2 小时撸一个 RSS 生成器
Wait no longer! Create RSS feeds for all websites you care about and read them from the comfort of y ...
- uglifyjs报错 webpack_基于vue2.X的webpack基本配置,教你手动撸一个webpack4的配置
webpack说复杂也不复杂.不复杂,核心概念不外乎是entry, output, loader, plugins.webpack4还新增了optimization选项,用于代码分割和打包优化.现在w ...
- vsc写vue生成基本代码快捷键_基于vue2.X的webpack基本配置,教你手动撸一个webpack4的配置...
webpack说复杂也不复杂.不复杂,核心概念不外乎是entry, output, loader, plugins.webpack4还新增了optimization选项,用于代码分割和打包优化.现在w ...
最新文章
- extjs中滚动条属性_十分钟快速了解 JS 中的 offset、scroll、client
- MIT微软为AI量身打造了一套leetcode编程题
- SQL查询月初与月末时间
- iOS 下如果存在UIScrollerView 使用UIScreenEdgePanGestureRecognizer实现侧滑效果失效的问题...
- MapReduce单机提交(待稿)
- 虚拟化技术(1)——介绍
- Vue.js 学习笔记 九 v-if和v-show
- react+antd 权限管理 Tree树形控件
- java对象的创建、java分配内存的方式、指针碰撞、空闲列表
- 全国多省市遭暴雪袭击!这些路段交通受阻!
- 关闭vscode中的源代码管理
- [推荐]全球第一互动成人英语学习软件《ELLIS 英语培训系统》ISO下载
- 『The Book of Why』导言:思维胜于数据
- “东数西算”之五大热点问题探讨
- 变量的定义以及数据类型
- MTK Kernel-4.9 GPIO占用分析方法
- STC89C52RC的P4口的应用问题
- W ndows7有线网络连接,七仔教你学Windows7:如何连接网络 爱问知识人
- 推荐两款Linux服务器连接的好工具
- 从零开始实现基于go-zero框架的微服务电商项目(三)——gorm、redis、腾讯云SMS、validate、md5加密、日志输入到kafka的添加