8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google Calendar の予定をテキスト化

Last updated at Posted at 2016-04-08

カレンダーをテキスト化したいよね

Google カレンダーをはじめとするツールは、コピペビリティが悪い。
メールに「今週一週間の予定」を貼り付けるのがまず難しい。

じゃぁってことで、DOMスクレイピングをしてみる。

以下のJavaScriptのコードを、Chromeのコンソールに貼り付ければ、別のウィンドウ(もしくはタブ)に、今週の予定がテキストとして出力される。

JavaScriptソース

(function(){
var days = document.querySelectorAll('.wk-daynames th');
var tdCols = document.querySelectorAll('.tg-col,.tg-col-today');
var ary = [];
for(var i=0;i<7;i++){ary.push(days[i].textContent + ' : ' + tdCols[i].textContent);}
var w = window.open('about:blank');
var t = w.document.createElement('textarea');
t.style.width='100%';
t.style.height='100%';
t.value=ary.join("\n");
w.document.body.appendChild(t);
t.focus();t.select();
})();

こういう予定の画面のChromeコンソールで実行すると
スクリーンショット 2016-04-09 13.50.30.png

こういう出力結果になる
スクリーンショット 2016-04-09 13.53.46.png

出力してなお、全選択してコピペの準備まで促すという親切さ。

「週次モード」でないと動かないが、こういう感じで、querySelectorAllメソッドを使うと、CSSセレクタで、ノードリストが取得できるから、あとは欲しい深さまで降りていって、textContentプロパティを取得すればオッケー。

8
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?