*

URL一覧からタイトルを一括DLするGoogle Apps Script

公開日: : google


LINE facebook twitter URLコピー
B! pocket Evernote 楽天


アップすスクリプト

ある程度の数のリストをごにょごにょするときには、Googleスプレッドシートはとても便利です。正規表現が使えたり、AppsScriptが使えたりと、EXCELよりも軽快に処理が行えます。

こんにちは、カグア!です。EXCELほど大量にはデータを扱えませんけれど、Googleスプレッドシートはほんと便利ですよね。

ちょっとURLを大量に処理することがあったので、ソースを共有しますー。

追記:13時43分 UrlFetchApp.fetchで文字化けする問題について追記しました。

何をするスクリプトなの?

とりあえず、URL一覧があって、それを1個1個どんなWebページなのかって知りたいときありますよね。

これを・・・、
これを

こうしてくれるAppsスクリプトです。
こうしてくれます

タイトルアグリゲーター

ほぼこちらのソースをお借りしています。感謝です。ありがとうございます。

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

あとは、タイトルの文字を置換するとか、クレンジングするとかいろいろとリプレースすると良いかと思います。ただ、エラー対応や例外処理とかぜんぜんしてません。ごめんなさい。

function myFunction() {
  var KKsp = SpreadKKactveetApp.getActiveSpreadKKactveet();
 var KKactv = KKsp.getActiveSheet();
  var KKcell = KKactv.getActiveCell();
  var y = 0;
  var KKval = KKcell.offset(0, -1).getValue();
  while(KKcell.offset( y , -1 ).getValue() != ""){
    var response = UrlFetchApp.fetch(KKval);
    var KKReg = /<title>([\s\S]*?)<\/title>/i;
    var match = KKReg.exec(response.getContentText());
    var title = match[1];
    title = title.replace(/(^\s+)|(\s+$)/g, "");
    KKcell.offset( y , 0 ).setValue(title);
    y++;
    KKval = KKcell.offset(y, -1).getValue();
  }
}

Appsスクリプトの解説

AppsScriptは、基本的にはJavaScriptと似たような構造です。オブジェクトを生成して、それらにどんどんメソッドやプロパティ操作していけばOKです。

Google Apps Script は、お約束の構文と、offset()の使い方を覚えると、すぐに書けるようになりますよ。ほんと便利。

.offset( y , x )

カレントセルの上下yxに対して処理ができる。xyではないので注意。

.getValue()と.setValue()

値をセットしたり取得したりします。

お約束

var app = SpreadKKactveetApp.getActiveSpreadKKactveet();
var sheet = app.getActiveSheet();
var cell = sheet.getActiveCell();
上から、アクティブなファイルからアクティブなシートを生成し、アクティブなセルを読み込む、という流れ。

UrlFetchApp.fetch();

URLを指定すればその先のデータを持ってこれます。実行時には一回認証する必要があります。

追記:Amazonのようにunicodeじゃないとき

UrlFetchApp.fetchは便利なのですが、たまに文字化けすることがあります。黒いダイヤに白抜きの???とかになるケース。アマゾンで遭遇しました。

charsetをUTF-8にしても、Shift-JISにしてもダメでした。で、調べますと以下のページが。どうやらそもそもUTF-8などのunicode(ユニコード)で出力してくれてなかったみたい。

>>レビューコンテスト | ベジタリアンのお買いもの – 楽天ブログ

結論としては、UrlFetchApp.fetchするときに、unicode変換するスクリプトを別途書かないとイケナイっぽいです。Google Apps Script ではunicode変換のメソッドや関数がないため、PHPなど何かしら自作する必要がありそうです。

Google Apps Scriptビギナーズガイド: Googleをプログラミングせよ! PRIMERシリーズ (libroブックス) 電子書籍: 掌田津耶乃: Kindleストア
Google Apps Scriptビギナーズガイド: Googleをプログラミングせよ! PRIMERシリーズ (libroブックス) 電子書籍: 掌田津耶乃: Kindleストア

「正規表現も使えるのが嬉しい。」
  • このエントリーをはてなブックマークに追加
  • Pocket

Profile



Yoshihiko Yoshida
メディア運営業界23年目。Googleアナリティクス公式コミュニティ・アンサリスト最高ランク「レジェンド」国内初獲得。「マツコの知らない世界」Googleマップ案内人TV出演。Googleストリートビュー認定フォトグラファー。教育システム情報学会会員。元立教大学非常勤講師。主な著書「Googleアナリティクス基礎講座」(技術評論社)。趣味はデジカメとゲームとパン作り。>>もっと読む

Instagram

◆代表者略歴 ◆受賞歴
◆おもな著書 ◆TV出演歴
◆新聞掲載歴 ◆雑誌/連載歴
 <<お問い合わせはこちら>>

Facebook

このブログをRSS購読しよう!(無料)

follow us in feedly

よろしければ「いいね」して下さい!

 
PAGE TOP ↑