google
GoogleAppsScript

Google Apps Scriptでスクレイピングする方法

More than 5 years have passed since last update.


Google Apps Scriptとは?

以下の記事見ながら触ってみるとなんとなくわかります。


正規表現を使えばスクレイピングできる

以下の記事見て、うおーっと思ったけどなんか違った。

できないのかなーと色々試してたらできた。


コード.gs

function myFunction() {

var response = UrlFetchApp.fetch("http://qiita.com");

var myRegexp = /<title>([\s\S]*?)<\/title>/i;
var match = myRegexp.exec(response.getContentText());
var title = match[1];

title = title.replace(/(^\s+)|(\s+$)/g, "");
Logger.log(title);
}


ログの出力

[13-09-10 00:00:49:130 JST] Qiita [キータ] - プログラマの技術情報共有サービス


Googleの検索結果を出してみる


コード.gs

function myFunction() {

var response = UrlFetchApp.fetch("http://www.google.co.jp/search?q=qiita");

var myRegexp = /<h3 class=\"r\">([\s\S]*?)<\/h3>/gi;
var elems = response.getContentText().match(myRegexp);
for(var i in elems) {
var title = elems[i]
title = title.replace(/(^\s+)|(\s+$)/g, "");
title = title.replace(/<\/?[^>]+>/gi, "");
Logger.log(title);
}
}


ログの出力

[13-09-10 00:08:56:438 JST] Qiita [キータ] - プログラマの技術情報共有サービス

[13-09-10 00:08:56:439 JST] Qiita APIドキュメント
[13-09-10 00:08:56:439 JST] タグ一覧
[13-09-10 00:08:56:439 JST] The Official Qiita Blog
[13-09-10 00:08:56:439 JST] Qiita:Career
[13-09-10 00:08:56:440 JST] Qiitaについて
[13-09-10 00:08:56:440 JST] Qiita:Team
[13-09-10 00:08:56:440 JST] キータ (Qiita) on Twitter
[13-09-10 00:08:56:440 JST] Qiita(キータ) | Facebook
[13-09-10 00:08:56:441 JST] 「Qiita」とそのビジネスとは - SD Japan | (株)スタートアップ・デイティング
[13-09-10 00:08:56:441 JST] ニュースリリース: プログラマのための技術情報共有サイト「Qiita(キータ ...
[13-09-10 00:08:56:441 JST] Qiita 2-day Hackathon | PeaTiX
[13-09-10 00:08:56:442 JST] Qiita AWS Tools Hackathon | PeaTiX


感想

これで定期的にサイトをチェックして特定のキーワードがあったらメールするとかのプログラムが簡単に書けそう。