Webページからデータを抽出するスクレイピングを、GoogleスプレッドシートのIMOIRTHTML関数で実行する方法をご紹介します。IMPORTHTML関数がエラーになる場合の解決方法についても解説しているので、ぜひ参考にしてみてください。
IMORTHTML関数の使い方
IMPORTHTML関数の URL、クエリ、指数の指定方法を解説します。クエリと指数については、インポート元のWebページから確認可能です。
IMPORTHTML関数とは?
IMPORTHTML関数は、HTML ページ内の表やリストからデータをインポートします。
例では 内閣府ホームページ から、令和5年(2023年)の「国民の祝日・休日」をスプレッドシートにインポートしています。
これらのデータはインポート元のページが更新されると、自動更新されます。
IMPORTHTML関数の構成要素:(URL, クエリ, 指数)
URLとは?
インポート元ページの URL です。Webサイトの該当ページを開き、アドレスバーの URL をプロトコル(http:// など)も含めてすべてコピーします。
関数内に指定する URL の値には、二重引用符(“URL”)が必要です。
クエリとは?
目的のデータを含むアイテムの種類を、“list”(リスト)または “table”(表)で指定します。
アイテムの種類は見た目で判断するほか、ソースコードから確認することも可能です。
指数とは?確認方法
対象の表またはリストについて、HTML ソース内で定義されている番号で 1 から順に指定します。
今回はページ内で 1 番目に定義されている表をインポートしているので、指数は 1 です。
指数やアイテムの種類を確認する場合、Google Chrome の設定から[その他のツール]を開きます。
次に[デベロッパーツール]をクリックすると、ページのソースコードが表示されます。
デベロッパーツールを開くショートカットキー:[Ctrl]+[Shift]+[I] または [F12]
[Ctrl]+[F] を押すと検索ボックスが表示されます。table で検索すると、1 of 6 と表示されました。これは、table が 6 個あるうちの 1 つ目のコードを指している状態です。
右横の三角[▼]から番号を移動すると該当番号の table コードに移動し、グレー背景がつきます。
グレー背景のコードにカーソルを合わせることで、何番目の table がページ上でどの表に当たるのかを確認可能です。
このようにソースコードを確認すれば、目的のデータのアイテムの種類も確認できます。
IMPORTHTML関数がエラーになる原因
#ERROR! の場合、スペルミスまたは二重引用符の付け忘れの可能性が高いです。ページのURLとクエリ(アイテムの種類)は、二重引用符で囲ってください。
クエリに二重引用符を付けていない場合、#NAME?エラーになります。
#N/Aエラー (インポートしたコンテンツは空です。)が表示される場合、ページ内に存在しないアイテムを指定している可能性が高いです。
例では table のアイテムを検索した結果、0 of 0 と表示されています。
このように table が存在しないページでクエリに table を指定しても、インポートできません。