【スクレイピング】電車の路線遅延チェッカーをGoogle Apps Scriptで作ってみました。遅延が発生した際に通知メールを受信できるプログラム

Yahoo路線情報のページを参照して電車に遅延があった際に通知メールを自動で送信するシステムをGAS(Google Apps Script)でプログラミングしてみました。

2024年6月現在、Yahoo路線情報の情報を二次利用することは禁止されていますので、本記事で紹介するスクリプトをそのまま使うことはできません。実用ではなく、あくまで参考として閲覧いただければと思います。

目次

電車遅延チェッカー

こちらのコードの情報を差し替えてGASで動かすだけで、任意のメールアドレスに遅延の通知メールを受信できます。

function checkWebsiteChange() {
  // スクレイピング対象のURLを指定
  const url = 'https://transit.yahoo.co.jp/diainfo/263/0';
 
  // UrlFetchAppを使ってウェブページのHTMLを取得
  const response = UrlFetchApp.fetch(url);
  const html = response.getContentText();
 
  // HTMLから特定の要素を抽出(例: idが'example'の要素)
  const oldContent = '平常運転';
  const contentPattern =  /<dt>(?:<[^>]+>)*([^<]+)<\/dt>/;
  const [_, newContent] = html.match(contentPattern) || [];
 
  // コンテンツが変更されたかチェック
  if (newContent && newContent !== oldContent) {
    // GmailAppを使って変更通知メールを送信
    const recipient = 'example@example.com';//通知を受け取るメールアドレスを入力
    const subject = '嵯峨野線遅延チェッカー';
    const body = `遅延かも→https://transit.yahoo.co.jp/diainfo/263/0: ${newContent}`;
    GmailApp.sendEmail(recipient, subject, body);
  }
}

Yahoo路線情報ページ(大阪環状線の場合だとhttps://transit.yahoo.co.jp/diainfo/263/0)の「平常運転」と表示されている箇所のテキストを取ってきて、平常運転じゃないテキストが表示されている場合に通知メールを送るプログラムです。

使い方

STEP
urlを遅延情報が掲載されているYahoo路線情報のページに差し替える

コードの赤マーカーの箇所を「Yahoo路線情報」の任意の路線ページのURLに差し替えます。

STEP
recipient変数を任意のメールアドレスに変更します。

コードの赤マーカー箇所メールアドレスを、通知を受け取りたいメールアドレスに変更します。

STEP
body変数に通知メールで送ってもらいたいテキストを入力します。

body変数には通知メールを受信した際に受け取りたい本文を入力します。遅延しているかもしれない旨のメッセージと該当のYahoo路線情報のURLを入れておけば、通知が来た際にクリックして確認できます。

STEP
トリガーを使ってGASを定期実行する。

GASのトリガー機能を使って30分おきなどGASを定期実行させ、遅延が生じた際にキャッチできるようにしておきます。

さいごに

生成AIが普及してからプログラミングを使うことがパワポやエクセルを使うように一般的になってきています。

今後もGASを始めプログラミングを活かして業務効率化に取り組んでいきます!

ウェブ広告の運用やアクセス解析など、ウェブマーケティングに関するお仕事のご相談は以下の公式LINEからお願いいたします。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Web制作会社に所属するウェブマーケター
Web広告、Webサイトのアクセス解析、SEOコンサルが主な業務。
数千ページのコンテンツを有する大企業から中小企業まで様々なクライアントのウェブマーケティング支援を担当している。
クラウドソーシングサイト「ランサーズ」で認定ランサーとしても活動中。

目次