- Coding Methodology
- GoogleスプレッドシートでWebページのデータを自動抽出
第128回 GoogleスプレッドシートでWebページのデータを自動抽出
「このWebサイトで設定されている全てのリンクURLを自動でピックアップしたい。でもプログラムを組むほどの時間は割きたくない。」
「サイトのリニューアルを検討しているので、現行サイトの全ページタイトルを確認したい。簡単にできる方法はないかな?」というときにオススメなのが、Google社が提供しているオンライン表計算ソフト「スプレッドシート」の「IMPORTXML関数」を利用する方法です。
今回は関数を使った「リンクURL・テキスト」と「ページタイトル」の取得方法をご紹介します。
IMPORTXML関数とは
XML、HTML、CSV、TSV、RSS フィード、Atom XML フィードなど、さまざまな種類の構造化データをインポートできる関数です。
関数は、図1-①のように「=IMPORTXML(参照セル, "XPath クエリ")」と記載すると実行されます。「参照セル」には指定のWebサイトのURLを、「Xpathクエリ」には取得したい階層を入力します。
※「XPath」とは、XML形式の文書から特定の部分を指定できる言語で、「Xpathクエリ」は、Google Chromeの開発者ツールや拡張機能を利用すると簡単に確認できます。
URLの一覧からすべてのページタイトルを一気に取得
- ① タイトルを取得したいページのURLをA列に入力します。
- ② A列の各URLから取得したタイトルをB列に出力する場合、B列のセルに「=IMPORTXML(A1,"//title")」のように入力していきます。
- ③ 関数が実行されると、それぞれのタイトルがB列に表示されます。(図1-②)

ページリスト作成のお助けに。
例えば「サイトのリニューアルにあたって現行サイトから全ページタイトルを確認したい」という場合、データを取得した時点でタイトルの一覧ができるので、あとは必要な情報を書き足すだけでページリストを完成させることができます。
Webページ内のすべてのリンクURLとリンクテキストを抽出
- ① セルA1にデータを取得したいWebサイトのURLを入力します。
- ② リンクURLをB列、リンクのテキストをC列に出力する場合、セルB1に「=IMPORTXML(A1,"//a/@href")」、セルC1には「=IMPORTXML(A1,"//a")」を入力します。
- ③ 関数が実行されると、セルA1に入力したWebページのリンクURL・リンクテキスト全てが、それぞれB列・C列に表示されます。(図2-①)

ページ解析の時短におすすめ。
Webページ内に設定されているリンク情報をすべて取得できるので、たとえリンクがたくさんあるようなページであっても、すべてのリンクをクリックして確認する必要がなく、一目でWebページのリンクの設定状況やディレクトリ構成を確認することができます。
最後に
IMPORTXML関数のXPath クエリは、より詳細な階層を指定することもできます。例えば「ページ全体のリンクではなく、ニュースの記事一覧のリンクテキストとリンクURLだけ取得したい」など欲しい情報のみを抽出することも可能です。状況に応じて取得範囲を指定できるので、ご自身の使いやすいようにカスタマイズしていくと業務効率化の一助になるかもしれません。
Webサイト内データの一括取得の方法は、Gulpなどのプログラムを組むという方法もありますが、ハードルが高いと感じる方もいるかもしれません。そんなとき、誰でも簡単に使えるGoogleスプレッドシートの関数を利用してみてはいかがでしょうか。