GoogleスプレッドシートIMPORTXML関数:プログラム不要Webデータを取得
当ラボでは、誰もが無料で使うことができるGoogleスプレッドシートを使って様々なツールを提供しています。
このGoogleスプレッドシートには、ExcelにはないGoogle独自の便利な機能(関数)を持っています。
今回は、そんな中でプログラム(スクリプト)不要でWeb上のデータを入手できる「IMPORTXML関数」を紹介します。
使い方
今回は、ヨドバシ.comのこちらの商品の価格の取得を例にIMPORTXML関数を利用してみます。
https://www.yodobashi.com/product/100000001002274011/
この数式をスプレッドシートを開いて、適当なセルに入力すると
=importxml(“https://www.yodobashi.com/product/100000001002274011/”,”//*[@id=””js_scl_unitPrice””]”)
・
・
・
¥680
と当該ページの価格が取得できます。
解説
IMPORTXML関数は、指定したWebページから任意の情報を取得する関数です。この関数を使うために必要なデータは
の2つとなります。
取得したいページのURLはともかく、xPathとは何でしょうか?
Xpathとは?
簡単に言うと、xPathとは取得したいページ内の場所を表すものです。
これは、Google製のブラウザGoogle Chromeで簡単に取得することができます。
(1)取得したいページを開き、デベロッパーツールを開く
(2)ツールの上の矢印ボタンを押す
(3)取得したいデータをクリック
(4)デベロッパーツールの青くなった部分を右クリックし、XPathをコピー
(5)テキストエディタ等に貼り付け
テキストエディタやスプレッドシートの適当なセルに貼り付ける(Ctrl+V)と、下記のような文字列が張り付きます。
引っかかりやすいポイント
注意点は、次の2点
・URLとxPathはダブルクォテーション(“)で囲む。
・xPath内にダブルクォテーション(“)がある場合、ダブルクォテーション(“)を二重にする。
(そのままImportxmlに貼り付けるとエラーが発生します。)
例://*[@id=”js_scl_unitPrice”] → //*[@id=””js_scl_unitPrice””]
URLとxPathを別のセルに入力して、そのセルをIMPORTXML関数で呼び出す方が良いかもしれません。この場合、上記2つの作業は不要です。
便利だけど・・・
とても便利なIMPORTXML関数ですが、いくつか注意点があります。
・反応が遅いときがある
IMPORTXML関数でたくさんのデータを取得しようとすると、うまく取得できない・取得までに時間がかかる場合があります。
・Amazonなど一部サイトでは取得でない
Amazonなどの一部サイトでは、Importxmlによるデータ取得ができないようになっています。
まとめ
このようにGoogleスプレッドシートには、スクリプト(プログラム)不要で使える便利な関数がいくつもあります。
ぜひ使ってみて下さい。