IMPORTXML(インポートエックスエムエル) - Googleスプレッドシート関数

IMPORTXML(インポートエックスエムエル) - Googleスプレッドシート関数

IMPORTXML(インポートエックスエムエル)は、XML、HTML、CSV、TSV、RSS フィード、Atom XML フィードなど、さまざまな種類の構造化データからデータをインポートします。

・関数IMPORTXML(読み方:インポートエックスエムエル)
・書式=IMPORTXML(URL,XPathクエリ)
・内容さまざまな種類のデータから文字列をインポートします
URL
検証するページのURL(http://、https://から始まる絶対値)

XPathクエリ
目的のデータを含むアイテムの種類を XPath形式で指定します

このページのstrongタグを呼び出す場合
 "/html/body/div/div/div/strong"

「//」で直前までのパスを省略することができます
 "//strong"

例)このページの"strong"を呼び出す場合
=IMPORTXML("https://google.dw230.com/importxml/","//strong")

例)このページの2番目の"p"タグを呼び出す場合
=IMPORTXML("https://google.dw230.com/importxml/","//p[position()=2]")

例)このページの3番目以降の"p"タグを呼び出す場合
=IMPORTXML("https://google.dw230.com/importxml/","//p[position()>3]")

position()が「=」の場合は省略できます
=IMPORTXML("https://google.dw230.com/importxml/","//p[2]")

対象クエリが見つからない場合「#N/A」エラーを返します

XPath(エックスパス)形式
「パスのような」構文を使用して、XMLドキュメント内のノードを識別およびナビゲートします
対象がHTMLの場合は上から
/html/body/div/div/div/strong
htmlの中のbodyの中のdivの中のdivの中のdivの中のstrongタグ
複数のdivを使ってる場合は指定が面倒です1階層でも間違えば「#N/A」エラーになります


IMPORTXMLの使用回数の上限

試しにアクセスログのページからURLをコピーしてタイトルを取得してみたところ
B列にURLを貼り付けた場合
ログが絶対リンクならばセルB2と指定すればよいが
ログが相対リンクの場合はURLの"https://google.dw230.com/"を「&」でつなげます
=IMPORTXML("https://google.dw230.com/"&B2,"//title")

一気に500行くらいコピーしたところエラーのままだったので10行づつくらい試したところ
150~200くらいで下記のエラーになりました

IMPORTXMLエラー

リクエスト数が多いためデータの読み込みに時間がかかる可能性があります。スプレッドシート内で作成した
IMPORTHTML、IMPORTDATA、IMPORTFEED、IMPORTXML 関数の量を減らしてみてください

他のPCでも試したがやはり150~200くらいでエラーになります
別のシートでも50個、50個、50個と3シート目でエラーになります

1時間くらい放置したところほとんど表示されましたがところどころエラーになっています

タイトルだけの取得ならば50個くらい取得したらコピーして値で貼付けしたほうが早く取得できます

IMPORTXMLで普通のホームページから取得できるのは
title、strong、span、h、p、div、などで
meta の description や keywords は取得方法が変わります

meta の descriptionを取得する場合
=IMPORTXML(B2,"//meta[@name='description']/@content")

meta の keywordsを取得する場合
=IMPORTXML(B2,"//meta[@name='keywords']/@content")

a タグは</a>までのテキスト部分を取得します(URLは取得しません
URLを取得する場合は
=IMPORTXML(B2,"//a/@href")

head は構造化データがある場合だけ構造化データの中身を取得します
IMPORTXMLとよく使う関数
 ISURL 指定した値が有効な URL であるかどうかを検証します
 VLOOKUP 特定の値を検索
 SPLIT 区切り文字でセルを分割します
 LEN 文字列の文字数を返します


IMPORTXML(インポートエックスエムエル)>HOME

Googleスプレッドシート関数

ネット上からデータを取得する関数

DETECTLANGUAGE(ディテクトランゲージ) テキストで使用される言語を識別して言語コードを返します

GOOGLETRANSLATE(グーグルトランスレート) 言語コードを指定して表示されている言語を翻訳します

ISURL(イズユーアールエル) 指定した値が有効な URL であるかどうかを検証します

IMAGE(イメージ) セル内に画像のURLを指定することで画像を表示します

IMPORTDATA(インポートデーター) 指定したファイルからタブ区切り、カンマ区切りで文字列を抜き出します

IMPORTFEED(インポートフィード) RSSフィードやAtomフィードをインポートします

IMPORTHTML(インポートHTML) ページのソースからクエリを指定して文字列を抜き出します

IMPORTXML(インポートエックスエムエル) さまざまな種類のデータから文字列をインポートします

(C) 2001-2020 Digital World