プログラミング

Gmailで特定のメールを受信したらスクレイピングしてLINEに通知する

yuis-ice/Scraping-GAS-Emails: Scraping utility for a Email from Google apps script via Sinatra Ruby server.

Scraping utility for a Email from Google apps script via Sinatra Ruby server.

Google apps scriptでGmailから取得したメールをsinatraサーバーに送ってパース/スクレイピングするユーティリティです。
スクレイピングした内容をslackやLINE,Windowsなどに通知などの用途を想定しています。

例えば、keepaから受信したHTMLメールをスクレイピングしてLINEに通知、したものが以下になります。

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_2e31df9b-0134-4fab-bd4a-52acb9587b53.png

以下、README.mdの翻訳です。

sinatra URLs

  • GET http://YOUR_DOMAIN/index : メインページ
  • GET http://YOUR_DOMAIN/row_email : スクレイピングされたemail(生)
  • GET http://YOUR_DOMAIN/email : スクレイピングされたemail(sinatraヘッダー付き)
  • GET http://YOUR_DOMAIN/dev : 特になし
  • POST http://YOUR_DOMAIN/dev : htmlをこのURLにPOSTし、次に/row_emailに行くと、chromeデベロッパーツールなどを使用してDOMエレメントを取得することができます。nokogiriの.cssや.xpathで使用するcssセレクターやxpathをこのページで簡単に取得することができます。
  • POST http://YOUR_DOMAIN/keepa : 例として、keepaのメールをスクレイピングしてLINEに送る操作をするアクションを定義してみました。

使い方

please change below variables to your own value in each file.

それぞれのファイルの以下の変数を自分の値に置き換えてください。

YOUR_LINE_NOTIFY_API_KEY
YOUR_DOMAIN

使用前にnokogiriやsinatraのインストールをお願いします。
(Gemfileは)ないです…。次から気をつけます。

git clone https://github.com/yuis-ice/Scraping-GAS-Emails.git
cd Scraping-GAS-Emails
ruby app.rb -o [YOUR IP ADDRESS] -p 80

Google apps script ファイルの例

How You get HTML from a message (an email) using Google apps script.

Google apps scirptを使ってメールのHTMLを取得する方法については以下のファイルが参考になるかもしれません。

GAS/Code.gs

関連記事:

Google Apps Script(GAS)のスクリプトをトリガーでスケジュール・定期実行する方法
GmailのメールをLINEに転送・共有・通知する方法
GoogleAppsScript(GAS) / 最新n日のメールに対して実行 (タイムスタンプ)
GoogleAppsScript(GAS) / スパムフォルダにメール転送する
独自ドメインのメールアドレスをGmailで送受信するやり方と設定方法

関連広告:

GAS(GoogleAppsScript)コース by テックアカデミー

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です