BLOG
ブログ

【スクレイピング】IMPORTXML関数の使い方や具体的な使用方法を解説!

※スクレイピングに関しては、個人の情報分析で利用する場合は基本的に問題ありませんが、NGとなる場合もあるので、自己責任でお願いいたします。

 

こんにちは。突然ですが「自社の競合サイトを調べたい!」というとき、どうしていますか?

 

例えば、自社の競合サイトを調べたい!というとき、普通の人であればGoogle(or Yahoo)で検索し、一つ一つのサイトにアクセスして「ふむふむ、なるほど…」とか言いながらエクセルなどでまとめていくのではないでしょうか。

 

今回紹介する「スクレイピング」という方法なら、一つ一つまとめていく必要はありません。

 

Web上でスクレイピングとは、簡単に言うと必要な情報を抽出することです。

 

スクレイピングって聞くと、横文字で難しそう…と言う印象を抱きがちです(私も昔そうでした)が、実はそんなに難しくありません。

 

スクレイピングは本来、プログラミングの知識を有する人でないとできませんが、プログラミングの知識がなくても、スプレッドシートで簡易的ではありますがスクレイピングが可能です。

 

今回は、スプレッドシートでスクレイピングを可能にする「IMPORTXML関数」について、これから使い方や具体的な活用方法をご紹介していきます。

IMPORTXML関数の仕組み

IMPORTXML関数は、サイトから必要な情報を指定し、その部分の情報をスプレッドシートに出力できるような関数です。

 

似たようなものにIMPORTHTML関数が存在しますが、本記事では、IMPORTXML関数に絞って説明します。

 

まずは、IMPORTXML関数の構文からご紹介します。

 

IMPORTXML(URL,XPathクエリ)

 

おそらく、これだけ見るとXPathクエリ?どう使えばいいかわかんない!ってなるかと思うので、ここから深堀りしていきます。

 

URLに関してはほとんどの人がご存じかと思いますが、ページ上部に表示される英数字や記号が羅列された部分です。

 

例えば弊社のHPだと、「https://nf-x.com」の箇所になります。

 

【スクレイピング】IMPORTXML関数の使い方や具体的な使用方法を解説!

 

次に、XPath(エックスパス)についてですが、マークアップ言語XMLに準拠した文書の特定の部分を指定する言語です。

 

これは言葉では理解が難しいと思うので、「そういうものがあるんだな」くらいで大丈夫です。

 

※以後、Google Chrome上での作業を想定していますので、他ブラウザを使用される場合は挙動が異なる場合がございます。

 

XPathの取得方法

 

実際に、XPathを取得してみましょう。

 

今回は、一番上にある「サービス」という箇所のXPathを取得してみます。

 

サービスの部分を右クリックし、「検証」をクリックします。

【スクレイピング】IMPORTXML関数の使い方や具体的な使用方法を解説!

 

すると下のような画面になり、右側にソースコードの羅列みたいなものが出てきたかと思います。

【スクレイピング】IMPORTXML関数の使い方や具体的な使用方法を解説!

 

続いて、右側の部分を触っていきますが、青く塗られている記述の部分があります。

 

今回で言うと、「<a href=”/service/”>…</a> == $0」の箇所です。
(「…」の部分は省略されています。実際にはサービスという文言が記述されています)

 

【スクレイピング】IMPORTXML関数の使い方や具体的な使用方法を解説!

 

こちらにカーソルを合わせて右クリックし、「Copy>Copy XPath」を選択します。

 

【スクレイピング】IMPORTXML関数の使い方や具体的な使用方法を解説!

 

コピーして、貼り付けていただければ、「//*[@id=”nfx”]/div[1]/ul/li[1]/a」というXPathが取得できていることがわかります。

 

スクレイピングの方法

では実際に、Googleスプレッドシートを使ってスクレイピングをしてみましょう。

 

まずは、スプレッドシートを準備しましょう。既存のスプレッドシートでも大丈夫です。

 

【スクレイピング】IMPORTXML関数の使い方や具体的な使用方法を解説!

 

次に、出力したい箇所をアクティブにし、IMPORTXML関数を入力します。

 

【スクレイピング】IMPORTXML関数の使い方や具体的な使用方法を解説!

 

続いて、URLを入力しましょう。

 

今回元にしたのは弊社のHPURLなので、「https://nf-x.com/」をダブルクォーテーション「”」で囲って入力します。

 

【スクレイピング】IMPORTXML関数の使い方や具体的な使用方法を解説!

 

続いて、先ほどコピーして取得したXPathを入力します。こちらもダブルクォーテーション「”」で囲みます。

 

【スクレイピング】IMPORTXML関数の使い方や具体的な使用方法を解説!

 

これで、関数の入力ができましたが出力結果は「エラー」。ルールに従って入力したはずなのに、なぜだと思いますか?

 

【スクレイピング】IMPORTXML関数の使い方や具体的な使用方法を解説!

 

実は、問題があるのはXPathの部分です。

 

先ほど、ダブルクォーテーションで囲むということをお伝えしましたが、それだけではダメでした。

 

なぜなら、「[@id=”nfx”]」の「”nfx”」の部分をダブルクォーテーションで囲っているからです。

 

本来ならば、XPathすべてをダブルクォーテーションで囲む必要があったのですが、XPath内にダブルクォーテーションが使われていて、途中でXPathが途切れるという判定になってしまいます。

 

なので、この場合は「”nfx”」のダブルクォーテーションをシングルクォーテーション「’」に変えてあげましょう。

 

【スクレイピング】IMPORTXML関数の使い方や具体的な使用方法を解説!

 

すると、全てのXPathが緑色になり、1つの文字列として認識してくれるようになりました。

 

【スクレイピング】IMPORTXML関数の使い方や具体的な使用方法を解説!

 

このようにして、「サービス」という文字をホームページからスクレイピングすることができました。

 

スクレイピングの注意点

 

ここまで、IMPORTXML関数を使ったスクレイピングについて説明しましたが、注意していただきたいことがあります。

 

大手サイトでスクレイピングができない

 

GoogleやAmazonなどは、IMPORTXML関数を使ってスクレイピングできません。

 

最近ではかなり規制が強化されており、GAS(Google Apps Script)やPythonなどでしかできないことが多いように感じます。

 

処理に時間がかかる

 

IMPORTXML関数を多用すると、サーバーに負荷をかけてしまうので関数がなかなか適用されないこともあります。

 

更に、IMPORTXML関数は2時間ごとに自動更新されるため、そのタイミングで表示されたりされなかったりとすることも。

 

なので、できるだけサーバーに負荷をかけない程度にしましょう。

 

html構造に依存する

 

IMPORTXML関数は一度適用させてしまえば、ずっとそのまま関数を入れっぱなしという方も多いかと思います。

 

しかし、対象サイトのhtml構造が変わってしまう、つまりホームページの改修やリニューアルなどがあった場合は気づかないうちに他の値になってしまったり、データが取得できないような状態になってしまうことも。

 

なので、スクレイピングしているから安心というわけではなく、定期的に状態を確認するようにしましょう。

 

【実例】IMPORTXML関数でスクレイピングをやってみよう

 

ここからは、実際にスクレイピングをやっていきます。

 

競合調査

 

よく他社サイトがどんな感じなのか、化粧品が欲しいけれど、どの化粧品がいいのか分析したいなど、用途は様々です。

 

今回は「佐賀 焼肉」と調べて出てきた上位3サイトをスプレッドシートにまとめます。

 

まずは、B列に検索結果のURLを貼ります。

 

【スクレイピング】IMPORTXML関数の使い方や具体的な使用方法を解説!

 

続いて、C列にタイトルを取得してみましょう。

 

ここでIMPORTXML関数を使います。

 

【スクレイピング】IMPORTXML関数の使い方や具体的な使用方法を解説!

 

IMPORTXML(URL,”//title”)で、ページのタイトルが取れましたね。

 

もちろん、競合サイトをまとめるのであればこれだけでもよいのですが、もう少し具体的に一覧化して見たい場合は、詳細文(Description)も抽出してあげましょう。

 

詳細文の関数は、以下の通りになります。

 

【スクレイピング】IMPORTXML関数の使い方や具体的な使用方法を解説!

 

=IMPORTXML(URL、”//meta[@name=’description’]/@content”)

上記は一例であり、サイトの構造によってはうまく抽出できないこともありますので、ご了承ください。

このようにすることで、競合のタイトル・詳細文をスプレッドシートで一覧化し、より分析しやすくなるかと思います。

 

まとめ

 

今回は、IMPORTXML関数について説明しました。

 

少し前であれば、検索結果を表示させたり、Twitter・Instagramのフォロワー、Youtubeの動画タイトル取得などが容易にできましたが、2021年現在は従来の方法ではスクレイピングできないよう規制されています。

 

とはいえ、まだまだ業務に役立つ使い方は存在しています。

 

GASやPythonなど、プログラマーであれば使えないこともないでしょうが、プログラミングの知識がない方は、是非一度スクレイピングを常識の範囲内で使って業務を効率化してみてはいかがでしょうか?

広告運用でお悩みの方へ
  • ・広告代理店にお願いしているが、思ったような効果が出ていない
  • ・自社で広告を運用しているが、今のやり方で良いのかわからない
当社ではリスティング広告やSNS広告などを実施されていて、上記のようなお悩みをお持ちの方に無料で現在の広告のアカウント診断を実施させていただいています。

アカウント診断では、
  • ・キーワードやターゲティングの設定は適切か
  • ・広告クリエイティブはユーザーニーズと広告プラットフォームの仕様を理解して作成できているか
  • ・キーワードの追加、除外、広告のABテストなどPDCAを回せているか
  • ・予算配分は適切か
  • ・効果的な配信方法の漏れがないか
など詳細に分析を行い、レポートとしてご提供しております。

CONTACT

お問い合わせ
広告運用に関するご相談は以下より
お気軽にお問い合わせください。
全国対応いたします。
お電話でのお問い合わせ [営業時間] 9:30~18:30 [定休日] 土日・祝祭日