GoogleスプレッドシートのIMPORTXML関数について備忘録。
IMPORTXML - Google ドキュメント エディタ ヘルプ
HTMLスクレイピングの記事が山ほど見つかるが、XMLファイルを扱う記事は少ない。
たとえばこのブログのサイトマップを対象に実行する。
sitemap.xmlのスキーマは以下の通り。
sitemap.xml<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc></loc>
<lastmod></lastmod>
</url>
</urlset>
今回はURLの一覧を作るため「loc」タグのみを取得したい。htmlと同様、「//loc」とやれば良いかと思いきやエラーとなる。
XMLの場合、HTMLとはXPathの指定が異なる。
正解はこれ。
XPath//*[local-name() ='url']/*[local-name() ='loc']
XPathはこのサイトで検証できる。
Online XPath Tester and Evaluator
実際のIMPORTXML関数はこんな感じ。
IMPORTXML関数=IMPORTXML("https://www.neputa-note.net/sitemap.xml","//*[local-name() ='url']/*[local-name() ='loc']")
実行結果
以上
参考記事
How to Extract URLs from a Sitemap Using Google Sheets - Aubrey Yung
コメント