GoogleスプレッドシートIMPORTXML関数:プログラム不要Webデータを取得

2019-01-26

当ラボでは、誰もが無料で使うことができる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ページから任意の情報を取得する関数です。この関数を使うために必要なデータは

  • 取得したいページのURL
  • 取得したい箇所のxPath
  • の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スプレッドシートには、スクリプト(プログラム)不要で使える便利な関数がいくつもあります。

    ぜひ使ってみて下さい。

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