collect, analyze, and visualize data
/ produced by Hiroyuki Shinoda
collect, analyze, and visualize data
Article
2013.7.21
Gmailのデータを取得する。

今回はGmailのやり取りのデータを取得する事を見ていきます。
といっても、いわゆるIMAP機能でバックアップするのではなく、
あくまでデータ分析が目的ですので、利用しやすい形で取得する事を目指します。

具体的にはGoogle Apps Scriptによって取得していきます。

Google Apps Scriptとは、Google製品であるスプレッドシートやドキュメント、Googleドライブ、
Goolgeカレンダー、およびGmailやGoogleマップなどをプログラム経由で制御するための言語となります。

Google Apps Scriptを用いる事で、Gmail上から任意の条件にマッチするメールのうち、
欲しい項目(送信日時や差出人など)を自由に選んでGoogleスプレッドシート上に一覧で記載する、
といったことが可能になります。

それでは具体的な手順をみていきます。
まずはGoogleにログインし、上のバーから「ドライブ」を選択します。
次に、左側の「作成」から「スプレッドシート」を選択します。

gas1
gas2

すると「無題のスプレッドシート」が立ち上がりますので、
上のバーから「ツール」→「スクリプトエディタ」を選択します。
左側の「スプリクトを作成」から「空のプロジェクトを作成」を選びます。
そうすると立ち上がる画面がGoogle Apps Scriptの編集画面となります。
ここから任意のコードを書いていきます。

gas3

Google Apps Scriptの詳細は他のサイトに譲るとし、
たとえば、メールを最新の物から30個えらび、タイトルと送信者、受信日時を一覧とする場合は
下記のようになります。

実行結果は下記のように「日付」「差出人」「メールタイトル」が並びます。(クリックで拡大)

gas4

※処理を実行するには「承認が必要です」と表示されますので「承認する」をクリックしましょう。
※ちなみに、短時間に頻繁にgmailにアクセスするとアラートが出て処理が中断されます。
 一度に取得するメールの数は限定し(50〜100程度?)、処理にスリープを入れるようにしたほうがよいようです。
※gmail以外も同様のアラートが出るかもしれません。

Google Apps Scriptはチャット履歴も取得できますので、
バックアップ目的で取得してもよいでしょうし、
たとえば、日時ごとにやりとりの相手とやり取り回数を取得する、
ということも可能です。
※ただし、Googleチャット(GTalk)のフォーマットが2013年4月前後から
 変更となっていることに注意しましょう。
 もし上記のようにやりとりの回数を取得する場合、
 2013年3月以前のチャットログから判断する場合はbrタグやspanタグの回数などから、
 計算することが必要です。

以上、Gmail(およびGtalk)のデータを取得する方法を見てきました。
この方法を用いる事で、下記のようにGtalkのやりとり回数およびメッセージ頻度(1回あたりの総メッセージ行数)の
時系列推移などをアニメーションすることが可能です。

スクリーンショット(2013-09-01 1.49.39)
人気記事: