特定キーワードにヒットした新着ニュースを通知するシステムを作ってみた

はじめに

最近、特定の記者の方々が書いた記事をニュースサイトから読むようになりました。
検索対象が少なければ手動で検索しても問題ないのですが、多くなると結構な手間になります。それに、検索しても新規の記事が出稿されているとは限りません。

ニュースサイトが何かしらの機能やAPIを提供してれればいいのですが、今のところそのようなものはありません。

そこで、Google Apps Script(GAS)を使い、特定の検索キーワードにヒットした新着記事をメールで通知してくれるシステムを作ってみました。

システム構成

検索結果はJavaScriptによって取得&表示されますが、GASに準備されている通常のHTML取得関数ではJavaScript実行後のHTMLを取得できません。そのため、PhantomJs Cloudというスクレイピングサービスを用いることにしました。

HTMLソースが取得できれば、適当にパースして必要な記事情報を取り出します。記事情報の中には日付も含まれているため、それを元に新着記事の判定を行います。

あとは、この流れをすべての検索キーワードで行い、1つ以上、新着判定された記事があれば、その結果をまとめてメールで送信する仕様にしました。サーバへの負荷対策としてループ毎にSleep関数を呼び出しています。GASだとGmailとの連携も簡単にできますし、HTML形式で本文に装飾を加えることもできます。

実際の動作

実装したGASスクリプトを定期的に実行するように設定しています。
実際の通知はこんな感じ。

スポンサーリンク
スポンサーリンク