使用 Apify 和 Integromat 免费监控您网站的正常运行时间
已发表: 2019-06-08那里有很多正常运行时间监控服务,不幸的是,它们中的大多数都需要每月订阅。 少数看起来确实可靠的免费软件并不能很好地控制您的网站的检查方式。 我最喜欢的监控服务曾经是 Pingdom,但他们最近停止了他们的免费计划,这迫使我寻找新的东西。 经过一些实验后,我能够以适合我监控需求的方式设置 Apify 和 Integromat。
首先这里是对这两种服务的一个小介绍:
阿皮菲
Apify 是一个“网络抓取和自动化平台”。 基本上,它允许您抓取任何网站并将可用信息转换为易于使用的 API。 例如,Google 没有用于获取搜索结果的官方 API,因此唯一的选择是从 Google SERP 中抓取 HTML 并提取您需要的数据。 Apify 可以轻松地为您自动执行此过程。 在我们的例子中,我们将配置它来抓取我们自己的网站以查看它是否在线。
积分
该服务是一个在线自动化平台。 它允许您定义在某些触发器上执行的操作。 例如,您可以定义一个场景,在该场景中,只要有人提交 Google 表单,就会在待办事项列表应用程序中创建一个新任务。 换句话说,它集成了不直接相互通信的服务。
对于我们的场景,我们将在 Apify 发现问题时使用 Integromat 发送通知。
流程概述
以下是其工作原理的简要概述:
- Apify 会定期抓取您网站上的页面并查找关键字
- Integromat 中的一个模块将在每次爬取结束时接收结果
- 过滤器将检查抓取数据以查看网站是否离线或未找到所需的关键字
- 如果网站离线,过滤器会让第二个 Integromat 模块运行并向您发送通知
让我们开始吧!
设置 Apify
- 注册一个免费的 Apify 帐户或登录(如果您有现有帐户)
- 转到您帐户中的爬虫部分并创建一个新的爬虫
- 在基本设置选项卡中为您的爬虫添加一个名称
- 在“起始 URL”字段中输入您要检查的 URL
- 从“可点击元素”字段中删除所有内容,因为我们不希望爬虫在网站上四处移动。 我们只想检查一个页面。
- 在“页面功能”区域,添加以下代码。 它将检查页面正文中的关键字“YOUR KEYWORD HERE”。 确保将其替换为您自己的关键字。
function pageFunction(context) { // called on every page the crawler visits, use it to extract data from it var $ = context.jQuery; var result = { title: $('title').text(), online: $('body').text().indexOf('YOUR KEYWORD HERE') !== -1 ? '1' : '0' }; return result; }
- 切换到高级设置选项卡
- 将“每次抓取的最大页面数”设置为 1,因为我们只想检查单个页面
- 保存爬虫设置
- 切换到运行控制台选项卡
- 单击运行按钮并确保结果下显示正确的值
- 从侧边栏中选择“计划”,然后单击“新建”
- 在“设置”选项卡下的“Cron 表达式”字段中输入@hourly 并保存设置
- 切换到“爬虫”选项卡,添加你的爬虫并保存。 现在您的新爬虫将每小时运行一次。
设置 Integromat
- 注册一个免费的 Integromat 帐户,如果您已有帐户,请登录
- 单击屏幕右上角的创建新场景按钮
- 您将被问到“您要集成哪些服务?”。 选择 Apify 并按继续
- 单击屏幕中间的问号,然后选择 Apify
- 在触发器下选择“Watch Crawler Executions”
- 当提示输入 webhook 时,单击“添加”按钮
- 在“添加挂钩”弹出窗口中,单击“连接”下的“添加”按钮
- 在“创建连接”弹出窗口中添加您的 Apify 凭据,然后单击继续。 您可以在 Apify 帐户的
Account > Integrations
下获取“User ID”和“API Token”。
- 添加连接后,从“Crawler”下拉列表中选择您在上一步中创建的 Apify 爬虫
- 在“添加挂钩”弹出窗口中单击“保存”
- 在 Apify 主弹出窗口中单击“确定”
- 新的 webhook 现已准备就绪。 哇!
您现在已经成功地为您的 Apify 爬网创建了一个侦听器。 现在您需要为爬网完成添加一个操作。 为此,您需要添加另一个模块。 在这里,您可以选择添加您喜欢的任何模块。 您可以选择添加 Gmail 模块以将通知发送到您的收件箱。 我将跳过这部分的说明,因为屏幕上的说明非常不言自明。 我个人选择 Slack 作为我的第二个模块,因为我不愿意让第三方访问我的电子邮件。
添加第二个模块后,单击连接两个模块的三个点并添加这些值:
这意味着如果 Apify 发送的爬网数据没有“在线”属性(用于服务器超时错误等),或者有“在线”属性可用但其值等于 0,则您只希望第二个模块运行(页面加载正常,但未找到关键字)。
测试
打开您的 Apify 爬虫设置并将无法访问的 URL 保存为“起始 URL”字段值。 现在,当您运行新的爬网时,它会失败,Integromat 中的第二个模块将被触发,您将收到新的通知!
就这样! 您的网站现在受到全天候监控,您无需支付一美元。 随意探索本文中提到的两项服务,以找到更多很棒的选项和用例。