ブログBLOG

IMPORTXML関数で手軽にスクレイピング

2022/11/07 月曜日

皆さんは、Googleスプレッドシートは使用していますか?
Googleアカウントがあれば、誰でも利用できるのでとても便利ですよね。

ところで、Googleスプレッドシートには独自の関数が幾つか実装されているのをご存じでしょうか。

今回は、スクレイピングに活用できるIMPORTXML関数についてご紹介いたします。

 

目次

 

 

IMPORTXML関数とは

 

IMPORTXML関数とは、Googleスプレッドシートで利用できる独自の関数です。
この関数を使うと、Webサイト上のデータを手軽に抽出することができます。

このように、Web上のデータを抽出することを、Webスクレイピングといいます。

本来、スクレイピングにはツールの開発やPythonのようなプログラミング言語を習得したりする必要がありますが、IMPOTXML関数を利用すれば誰でも簡単にスクレイピングをすることができるようになります。

▼▼IMPORTXML関数について早速学びたい方はこちら!▼▼

IMPORTXML関数の手順書 ダウンロードフォーム

 

 

IMPORTXMLの使用用途

 

例えば、自社で生産している商品の、競合となる商品を調べたいとします。
楽天やeBayなどで商品を検索し、一つ一つ詳細ページを開いて商品名・値段・スペックなどをコピーしてExcelに貼り付けて…という手順で一覧表を作ることも可能ですが、手間と時間がかかってしまいます。

その点、IMPORTXML関数を利用すると、自動でデータを取得し一覧にすることができるので、時間を大幅に削減することができます。

また、IMPORTXML関数は、自動でデータを更新してくれます。
WebサイトからコピーをしてExcel等に貼り付けたデータは自動で更新がされないため、ある程度の期間が過ぎたら変更が無いか自ら確認する必要があります。
しかし、IMPORTXML関数を用いて取得したデータは、Webサイトで更新があった時には自動で新しいものに置き換わるので、常に最新のデータを取得することができるのです。

 

 

IMPORTXML関数の使い方

 

基本的な書き方

それでは、早速IMPORTXML関数の使い方を見ていきましょう。

IMPORTXML関数の基本的な構文は、以下の通りです。

=IMPORTXML(”WebサイトのURL”,”Xpath”)

基本式が分かったところで、実際にどのように書いていくのか見ていきましょう。

今回は、下記のページの値段を抽出すると仮定して、式を作っていきます。

出典:アイロボット 公式 Yahoo!店 – 通販 – Yahoo!ショッピング

まずは、抽出したいページのURLをコピーして、どこかに控えておきます。
同様に、値段のXPathを取得します。

※GoogleChromeを利用している場合の手順です。他のブラウザでは挙動が異なる場合があります。

XPathを取得したいデータにカーソルを合わせ、右クリックでメニューを開きます。 その中から、「検証」を選びます。

右側にコンソール画面が開くので、強調されている箇所を探しましょう。

その部分を右クリックし、コピー→Xpathをコピーと選択します。

コピーしたものは、先ほどのURLと同様にどこかに控えておきます。

 

URLとXPathの準備が出来たら、実際にスプレッドシートに式を入力していきましょう。
任意のセルに、=IMPORTXMLと打ち込み、先ほど控えておいたURLとXPathを当て込みます。
この時、URLとXPathを””(半角のダブルクオーテーション)で囲うのを忘れないようにしてください。
また、XPathの中にダブルクオーテーションが含まれている場合は、’’(半角のシングルクオーテーション)に置き換えるようにしましょう。そのままだと、値が上手く抽出できません。

正しく入力ができたら、Enterキーを押して値が更新されるのを待ちます。

実際に利用した式がこちらです。

Webサイトと見比べてみると、正しい値が反映されているのが分かるかと思います。
また、上の画像の赤く囲われた部分は、本来ダブルクオーテーションで囲われていたのですが、それをシングルクオーテーションに打ち換えています。

 

応用編

IMPORTXML関数では、セル番号を指定してデータを抽出することも可能です。

 

こちらの画像を見てください。

A列の各行には参照したい商品ページのURLを入力しています。
B列・C列の2行目には、抽出したい値のXPathが入力してあります。
この状態で、B列・C列の3行目以降に関数を入れることで、図のような一覧を作成することができるのです。

 

例えば、B3のセルには以下のように式を入れています。

同じように、C3のセルには、=IMORTXML(A3,$C$2)と入力しています。

 

このように、セル番号を参照した式を使う場合、セル番号をダブルクオーテーションで囲う必要はありません。
また、セルにあらかじめ貼り付けたXPathのダブルクオーテーションを、シングルクオーテーションに打ち換える必要もありません。WebサイトからコピーしたXpathをそのまま使うことができます。

 

Pythonを使ったスクレイピングとの違い

 

このように、Webサイトのスクレイピングを行う際、Pyton(パイソン)のようなプログラミング言語を使用することもできます。
しかし、冒頭でも述べたようにPythonを利用する場合、技術や知識を身に付ける必要があり、更にそこから必要な環境を用意しなければなりません。

その点、IMPORTXML関数は、Googleスプレッドシートを利用できる環境であれば、複雑な設定などしなくても、すぐにスクレイピングをすることができます。

ただし、IMPORTXML関数は、大量のデータや複雑なデータを処理をすることに向いていません。また、一部の大手サイトではデータが抽出されないように設定されている場合があります。
複雑かつ大量のデータを一度にスクレイピングしたい場合は、Pythonなどを利用するのが良いでしょう。

 

まとめ

 

IMPORTXML関数を利用したスクレイピングの方法について紹介しましたが、いかがでしたか?

Googleスプレッドシートが利用できれば簡単に実行できますので、是非一度試してみて下さいね。

こちらで紹介した手順についてまとめた手順書をご用意いたしました。
ご興味がおありの方は、こちらよりご請求ください。

 

IMPORTXML関数の手順書 ダウンロードフォーム