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

  • 248
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

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

感想

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