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

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

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 は取得できません

a は/aまでのテキスト部分を取得します(URLは取得しません

head は構造化データがある場合だけ構造化データの中身を取得します


IMPORTXMLとよく使う関数
 ISURL  セルに指定されたURLが有効かテストします
 IMAGE  セル内にURL指定して画像を表示します
 IMPORTHTML  指定したURLから文字列を抜き出します
HOME

Googleスプレッドシート関数

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

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

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

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

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

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

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

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

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

(C) 2001-2020 Digital World