监控网页数字变化,增大提醒,减小不提醒

本贴最后更新于 1102 天前,其中的信息可能已经事过境迁

如果单纯监控网页上的数字范围比较简单,比如监控价格低于 100 元提醒,由于参考值 100 是固定的,只需要每次抓取价格与 100 做比较就可以了。但是如果要做到价格上涨时提醒而且降价时不提醒,就比较复杂了,因为每次抓取价格后跟上一次的抓取结果进行比较,就必须想办法记住上一次的价格。幸好木头浏览器提供一个自定义变量的功能,可以把价格记录在自定义变量中,然后每次抓取价格都与记住的这个变量比较,并把最新的价格赋值给变量。
有了思路后马上实践一下,为了测试方便,用一个随机数生成页面代替价格(库存)监控,具体步骤如下:
1、先打开这个随机数生成页面观察一下,点击“生成”按钮都在页面末尾显示一个大于 1 且小于 100 的随机数,然后再次点击生成,如果生成的数值比原来的大,就报警提醒,反之则不提醒。
1 网页随机数.png

2、创建一个打开网址的步骤,添加监控的网址。
2 添加网址.png

3、创建自定义变量的步骤,创建一个名为“old“的变量,用来存放每次抓取的数字,并设置初始值为 0。
3 自定义变量存放数值.png

4、创建一个定时控制步骤,设置间隔 5 秒执行一次,即每 5 秒点击一次生成按钮,并监控数字是否增大。
4 定时生成数字监控.png

5、创建一个点击元素步骤,用来点击生成按钮。先点击【添加】按钮,在弹出的【添加点击目标】对话框中,点击【自动获取】按钮,会弹出页面元素选择状态,将鼠标移到网页上的【生成】按钮处单击右键,并在弹出的快捷菜单中,选择【获取元素并返回】,就成功获得【生成】按钮元素的参数。最后点击【确定】添加点击目标。
5 点击生成按钮.png

6、创建一个抓取内容步骤,用来抓取页面上的数字。先点击【添加】按钮,在弹出的【抓取元素设置】对话框中,设置别名为“new“,这样抓取到的数值将保存在名为”new"的变量中。点击【自动获取】按钮,会弹出页面元素选择状态,将鼠标移到网页抓取数字元素处单击右键,并在弹出的快捷菜单中,选择【获取元素并返回】,就成功获得页面数字元素的参数。最后点击【确定】添加抓取内容。
6 抓取页面数字内容.png

7、创建一个监控其它的步骤,用来监控当前步骤的运行次数,如果是第一次运行,只记录抓取的页面数字,之后运行才和上一次抓取的数字进行对比。如下图所示,设置当运行次数大于 1 时,执行 yes 节点内容(进行数字对比),反之执行 no 节点内容(由于 no 节点什么也不做,会继续执行下一个步骤)。
7 监控运行次数.png

8、在监控其它步骤的 Yes 子节点下创建一个监控变量的步骤,如下图所示,添加监控条件为“new”变量大于“old"变量。满足条件时执行本步骤的 Yes 子节点(报警提醒),反之执行 No 子节点(什么也不做)。注意这里不能直接输入变量名称,那样是无效的,应该在输入框内点击鼠标右键选择对应的变量。

8 比较数字是否增大.png

9、在监控变量的 Yes 子节点中设置报警提醒方式,可以选择弹出窗口提醒,并设置弹窗内容显示原数字和增长后的数字;同时还可以勾选声音提醒和微信邮件提醒。
9 页面数字变化提醒方式.png

10、最后增加一个自定义变量步骤,把”new“变量的值赋值给”old“变量,成为下一次监控的比较值。
10 保存数字变量.png

11、全部设置完成后,打开项目管理器的【项目】菜单,保存当前项目。选中项目的根节点,点击开始按钮就可以执行本项目了。浏览器间隔 5 秒就会点击一次页面上的【生成】按钮,如果生成的随机数比原来的数值大,就会在屏幕右下角弹窗报警提醒,弹窗内容显示前后两次抓取的数字,同时发出警报提示音和微信邮件提醒。
11 页面数字变大提醒效果.png

   监控网页数字增长提醒而降低不提醒,这是页面数字监控中最复杂的情况。如果监控数字是固定比较值,则无需设置和保存自定义变量。
  • 工具

    子曰:“工欲善其事,必先利其器。”

    274 引用 • 682 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • geekpie

    上古软件 没想到还在

    1 回复
  • mutousoft
    作者

    ❤️

mutousoft
网页变化监控与自动控制 韶关

推荐标签 标签

  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 685 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖 • 6 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    35 引用 • 35 回帖
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖 • 1 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6551 引用 • 29424 回帖 • 246 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖 • 2 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 443 关注
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    103 引用 • 294 回帖
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    40 引用 • 40 回帖
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    205 引用 • 357 回帖 • 1 关注
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    4 引用 • 55 回帖 • 8 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    82 引用 • 122 回帖 • 621 关注
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 42 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 71 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    40 引用 • 24 回帖
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    84 引用 • 139 回帖
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 399 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 636 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 1 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3168 引用 • 8207 回帖
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 247 回帖 • 174 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    180 引用 • 447 回帖 • 1 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 247 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖 • 1 关注
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖 • 2 关注
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    21 引用 • 37 回帖 • 513 关注