Googleスプレッドシートを使ったデータ取得:URLfetch関数の活用

2019-03-05

Googleスプレッドシートには、Web上からデータを抽出する関数が用意されています。
これらについては、こちらで紹介してきました。

スクリプトを使ってWebデータを取得する関数

これらの他にもGoogleスプレッドシートでは、プログラム(Google Apps Script)を使ってWebページのデータを取得する方法があります。今回は、プログラム(Google Apps Script)を使ってWebページのデータを取得するUrlfetch関数を紹介します。

ポイント Urlfetch関数とは?

WebページのソースであるHTMLを抽出する関数です。Google Apps Script上で使用します。(スプレッドシートでは動きません。)

ポイント 使い方

例として、ハードオフの通販サイト「ネットモール」の商品ページのデータを取得します。この関数はHTMLを取得するだけなので、その後に文字列操作関数を使ってタイトル・価格のデータを抽出し、ログに出力します。

今回、作成したスクリプト(Google Apps Script)は、こちらです。なお、スクリプトの作成及び実行方法はこちらにまとめてあります。

当ラボでは、誰もが無料で使うことができるGoogleスプレッドシートを使って様々なサイトから必要な情報の取得を仕組み化したツールを提供しています。今回は、Googleスプレッドシートでプログラム(スクリプト)を記載して実行するための流れを紹介します。 スクリプト作成の流れスクリプト作成から実行までの流れは次の通りです。(1)スクリプトエディタを開く(2)スクリプトの記述・保存(3)スクリプトの選択・実行(4)実行ボタンの作成 スクリプトエディタを開くスクリプトを作成したいスプレッドシートを開き、そこからスクリプトエデ...

function test() {

  //抽出するURL
  var url2="https://netmall.hardoff.co.jp/product/1241915/"

 //URLfetch関数でHTMLを取得
  var response = UrlFetchApp.fetch(url2);
  var response=response.getContentText();  
  
  //商品タイトルを取得
  var myRegexp = /<title>([\s\S]*?)<\/title>/i;
  var tit = myRegexp.exec(response);
  Logger.log("Title:"+tit[1])

  //商品価格を取得
  var myRegexp = /<p class="p-goodsDetail__price">([\s\S]*?)<span class="p-goodsDetail__tax">/i;
  var pri = myRegexp.exec(response);
  Logger.log("Price:"+pri[1])  

}

ログ出力は、上記スクリプト内の

  Logger.log("Title:"+tit[1])
  Logger.log("Price:"+pri[1]) 

となります。
こちらを実行すると、実行ログに商品タイトルと価格が出力されます。

ポイント 文字列抽出関数と一緒に活用

上記例のように、URLfetch関数は、文字列操作関数を組わせて使用します。従って、データを抽出のための文字列操作関数を組み合わせて、欲しいデータだけを取得するかがポイントとなります。

ポイント まとめ

今回は、プログラム(Google Apps Script)を使ってWebページのデータを取得するUrlfetch関数を紹介しました。ポイントは、最後に述べたとおり、「文字列抽出」です。次回は、スクリプト例の中で使用した文字列抽出の方法の一つ正規表現を使った抽出について紹介します。

Copyright(c) 2016 e-Shikumi-Labo All Rights Reserved.