ApifyとIntegromatを使用して、サイトの稼働時間を無料で監視します
公開: 2019-06-08そこにはかなりの数の稼働時間監視サービスがありますが、残念ながらそれらのほとんどは月額サブスクリプションを必要とします。 実際に信頼できると思われるいくつかの無料のものは、Webサイトのチェック方法をあまり制御できません。 私のお気に入りの監視サービスは以前はPingdomでしたが、最近無料プランを中止したため、新しいものを探す必要がありました。 いくつかの実験の後、監視のニーズに合った方法でApifyとIntegromatをセットアップすることができました。
まず、両方のサービスの簡単な紹介を示します。
Apify
Apifyは「ウェブスクレイピングおよび自動化プラットフォーム」です。 基本的に、任意のWebサイトをクロールし、利用可能な情報を使いやすいAPIに変換できます。 たとえば、Googleには検索結果を取得するための公式APIがないため、唯一のオプションはGoogle SERPからHTMLを取得し、必要なデータを抽出することです。 Apifyは、このプロセスを簡単に自動化できます。 この例では、自分のWebサイトをクロールして、オンラインかどうかを確認するように構成します。
インテグロマット
このサービスはオンライン自動化プラットフォームです。 特定のトリガーで実行されるアクションを定義できます。 たとえば、誰かがGoogleフォームを送信するとすぐに、todoリストアプリで新しいタスクが作成されるシナリオを定義できます。 つまり、直接通信しないサービスを統合します。
このシナリオでは、Apifyが問題に気付いたときに、Integromatを使用して通知を送信します。
プロセスの概要
これがどのように機能するかについての簡単な概要は次のとおりです。
- Apifyは定期的にウェブサイトのページをクロールし、キーワードを探します
- Integromatのモジュールは、各クロールの最後に結果を受け取ります
- フィルタはクロールデータをチェックして、Webサイトがオフラインであるか、必要なキーワードが見つからないかを確認します
- Webサイトがオフラインの場合、フィルターは2番目のIntegromatモジュールを実行し、通知を送信します
始めましょう!
セットアップApify
- 無料のApifyアカウントにサインアップするか、既存のアカウントをお持ちの場合はログインしてください
- アカウントのクローラーセクションに移動して、新しいクローラーを作成します
- [基本設定]タブで、クローラーの名前を追加します
- 「開始URL」フィールドにチェックしたいURLを入力します
- クローラーがWebサイト上を移動することを望まないため、[クリック可能な要素]フィールドからすべてを削除します。 1ページだけ確認したい。
- 「ページ機能」エリアに、以下のコードを追加します。 ページの本文で「YOURKEYWORDHERE」というキーワードがチェックされます。 必ずこれを独自のキーワードに置き換えてください。
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ページのみをチェックするため、「クロールあたりの最大ページ数」を1に設定します
- クローラー設定を保存します
- [コンソールの実行]タブに切り替えます
- [実行]ボタンをクリックして、結果の下に正しい値が表示されていることを確認します
- サイドバーから「スケジュール」を選択し、「新規作成」をクリックします
- [設定]タブの[cron式]フィールドに@hourlyと入力し、設定を保存します
- 「クローラー」タブに切り替え、クローラーを追加して保存します。 これで、新しいクローラーが1時間ごとに実行されます。
Integromatのセットアップ
- 無料のIntegromatアカウントにサインアップするか、既存のアカウントをお持ちの場合はログインしてください
- 画面の右上隅にある[新しいシナリオを作成]ボタンをクリックします
- 「どのサービスを統合しますか?」という質問が表示されます。 [承認]を選択して[続行]を押します
- 画面中央の疑問符をクリックして、[承認]を選択します
- トリガーの下で「クローラーの実行を監視」を選択します
- Webhookの入力を求められたら、[追加]ボタンをクリックします
- 「フックの追加」ポップアップで、「接続」の下の「追加」ボタンをクリックします
- [接続の作成]ポップアップで、Apifyの資格情報を追加し、[続行]をクリックします。 「ユーザーID」と「APIトークン」は、Apifyアカウントの
Account > Integrations
で取得できます。
- 接続が追加されたら、[クローラー]ドロップダウンから前の手順で作成したApifyクローラーを選択します
- 「フックの追加」ポップアップで「保存」をクリックします
- Apifyのメインポップアップで[OK]をクリックします
- これで、新しいWebhookの準備が整いました。 ふぅ!
これで、Apifyクロールのリスナーが正常に作成されました。 次に、クロールが終了したときのアクションを追加する必要があります。 このためには、別のモジュールを追加する必要があります。 ここでは、好きなモジュールを追加することができます。 Gmailモジュールを追加して、受信トレイに通知を送信することを選択できます。 画面上の指示はかなり自明なので、この部分の指示はスキップします。 個人的には、サードパーティに電子メールへのアクセスを許可することに抵抗があったため、2番目のモジュールとしてSlackを選択しました。
2番目のモジュールを追加したら、2つのモジュールを接続する3つのドットをクリックして、次の値を追加します。
これは、Apifyによって送信されたクロールデータに「online」属性がない場合(サーバータイムアウトエラーなど)、または「online」属性が使用可能であるがその値が0に等しい場合にのみ、2番目のモジュールを実行することを意味します。 (ページは正常にロードされましたが、キーワードが見つかりませんでした)。
テスト
Apifyクローラー設定を開き、アクセスできないURLを「開始URL」フィールド値として保存します。 これで、新しいクロールを実行すると、予想どおりに失敗し、Integromatの2番目のモジュールがトリガーされ、新しい通知が届きます。
それで全部です! あなたのウェブサイトは現在24時間監視されており、1ドルを支払う必要はありません。 この記事に記載されている2つのサービスを自由に調べて、より優れたオプションとユースケースを見つけてください。