スプレッドシートのIMPORTXML関数をご存知でしょうか?
IMPORTXMLとはウェブサイト上にあるデータを手元のスプレッドシートに収集することができる関数です。
ExcelにはなくSpreadsheetのみある関数です。
この関数を使うことで、ウェブサイト上データを一覧性の高い表にまとめる事ができます。
たとえば不動産を購入するときに効率よく安い物件物件を探すのに便利です。
通常、不動産の情報を集めるためにSOOMOなどの不動産情報サイトを使うと思います。
ページ内のすべての物件の価格や住所の情報を見るために、画面をスクロールしなければなりません。
数件だけなら良いですが、30件以上となると情報の見落としも発生します。
情報を一つの表に集めたほうが分析が効率的になるはずです。
スプレッドシートのIMPORTXML関数を利用すれば、一覧表が簡単に作成できます。
スプレッドシートって何?という方は下記の記事を参照ください。
-
スプレッドシートとは?Excelの代わりに無料で使える表計算ソフトの使い方
Excelは仕事には欠かせないソフトですが、導入するには1万円以上かかります。 事務処理の副業で稼ぎたい人や私生活での小遣い帳作りたい人にとっては、1万円は高すぎます。 そこで紹介したいのがスプレッド ...
この記事ではスプレッドシートのIMPORTXMLを使って5分程度で不動産情報サイトないの情報の一覧表を作る例を紹介します。
IMPOTRXMLで一覧表を作ると、ウェブサイトが更新されるたびに一覧表も更新されて便利です。
不動産の情報収集だけではなく、あらゆる情報の収集に役立つはずです。
この記事でつくる一覧表の例
下の画像のような一覧表が5分で作れます。
この表はSUUMOで検索した結果を一覧表にまとめたものです。
条件としては名古屋市の築年数25年以内かつ戸建ての住宅を安い順に並べたものです。
一覧表にすることで必要な情報が整理されフィルターなどで簡単に情報が絞り込めます。
スプレッドシートのIMPORTXML関数を使えばウェブサイトからの情報収集が簡単にできます。
IMPORTXMLとは
IMPORTXMLはウェブサイトの情報を収集する関数です。
下記のような記述をします。
=importxml(url,xpath)
urlとはウェブサイトのアドレスです。
Xpathはページ内の情報の場所を示す住所です。
例えば不動産情報サイトで言えば価格や築年数などの情報が配置されている位置にあたります。
Xpathの取得はChromeを使えば簡単に取得できるので、後ほど詳しく説明します。
それではIMPORTXMLを使った一覧表の作り方を解説します。
一覧表の作成手順
一覧表は下記のような手順になります。
①検索したいサイトにアクセスして検索したい対象を絞り込む
②絞り込んだページのurlをコピーしてスプレッドシートに貼り付ける
③取得したい情報のxpathをコピーしてスプレッドシートに貼り付ける
④importxml関数でurlとxpathのセルを参照する
⑤ページ内の複数の情報に拡張する
手順について詳しく説明します。
①検索したいサイトにアクセスして検索したい対象を絞り込む
この記事ではSUUMOを利用します。
検索条件として「名古屋市のすべて区」「戸建て」「築25年以下」を例に上げています。
特に好みに条件で問題ありません。
②絞り込んだページのurlをコピーしてスプレッドシートに貼り付ける
スプレッドシートを起動してUrlを貼り付けます。
特にどこのセルでも構いませんが、後で分かるように貼り付け場所を決めておくと良いです。
③取得したい情報のXpathをコピーしてスプレッドシートに貼り付ける
情報の住所であるXPathはChromeを使えば簡単に取得できます。
ここでは価格を取得する場合について説明します。
一番上に表示されている物件の価格の1180万円の部分にカーソルを合わせて右クリックを押して検証を選択します。
検証ボタンを押すと検証モードになり、ページの右側にページ内のHTMLなどの情報が表示されます。
見慣れない情報が表示されて戸惑うかもしれませんが、XPathの取得自体は簡単です。
1180万円の部分で右クリックを押して、コピーのCopy full XPathを選択します。
Copy full XPathを選択することで、1180万円の情報の住所を示すXPathを取得できます。
次にXPathをスプレッドシートに貼り付けます。
どこに貼り付けても良いですが、項目と同じ列のほうが良いと思います。
④IMPORTXML関数でurlとxpathのセルを参照する
次にIMPORTXML関数でurlとxpathを参照します。
入力することで1180万円が価格として表示されます。
しばしば貼り付けても#NAと表示されて、うまく取得できない場合があります。
検証で取得するXpathは実際のサイトのHTMLに対して補完されていることが原因です。
Xpathに余分な項目が入っています。
ウェブサイトのHTMLソースと見比べて適切にXpathを修正しましょう。(例えば/tbodyを削除など)
⑤ページ内の複数の情報に拡張する
これまで、一番上に表示されている物件の価格を取得してきました。
一方、ページ内の物件は複数です。
複数の物件まで取得範囲を広げる方法を説明します。
まずは2番目の物件の価格のXPathを右クリック検証からCopy full XPathで取得します。
次に、1番目と2番目の価格のXPathを比較します。
真ん中んの「div[1]」の部分のみ違うことがわかります。
IMPORTXMLが参照しているXPathの「[div[1]」を「div」に変更します。
そうすることで、ページ内すべての物件の価格が一覧できるようになります。
物件名や住所についてもXPathの取得とXPathの比較をすることで、一覧にすることができます。
Impotrxmlの更新頻度
Importxmlの更新は開いている間は1時間に一回更新されます。
ファイルを閉じてから開いた瞬間に更新されることを期待するかもしれませんが、そういったことはありません。
自分の望むタイミングで更新する方法としては、Importxmlが記述されたセルを一度消してから、同じ内容を書き込むことです。
そうすることで書き込んだ瞬間に最新の情報になります。
詳しい説明はこちら。
スクレイピングとの違いについて
スクレイピングとはPythonなどのプログラミング言語をつかって、ウェブサイトの情報を自動で収集することです。
今回紹介したスプレッドシートのImportxmlを使った手法と異なり、プログラムを動かした任意のタイミングでデータを取得することができます。
また、Importxmlでは情報を取得できない一部のサイト(GoogleやAmazon)などのサイトからも情報を取得することができます。
ただ、プログラミングをおぼえるコストがかからない点でImportxmlは優秀だといえます。
まとめ
この記事ではスプレッドシートのIMPORTXMLを使った一覧表作成の方法を紹介しました。
IMPORTXMLを使うことで、普通にウェブサイトを見るよりも一覧性の高い情報の取得ができると思います。
今回紹介した手法は不動産情報サイト以外にも同じ構造を持ったサイトにも応用できます。
この記事が役に立ちましたら、SNSでのシェアを頂けると嬉しいです。
-
合わせて読みたい【基礎を学ぶ】初心者が統計からのデータ分析を学ぶのに役立つ本を3冊紹介
仕事で突然マーケティングを任せられたけどどうやって学べばいい?
データ分析に触ってみたけど、以外に面白い。もっと学びたい。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12216757892?__ysp=44OH44O844K%2F5YiG5p6Q続きを見る