【スプレッドシートでスクレイピング】IMPORTXML関数の使い方

サイトでtitleやh1などのタグをを取得したいと思ったことはありませんか?

本来はタグの取得はスクレイピングという技必要ですが、スプレッドシートの場合、IMPORTXML関数を使えば、簡単に実現可能です。

IMPORTXMLの使い方

【IMPORTXMLの構文】
=IMPORTXML(“URL”, “XPathクエリ”)

URLには「情報を取得したいURL」を入れて、XPathクエリには「欲しい情報(タグなど)」をを数式に記入するだけです。

井口はXPathクエリで以下の情報をよく入れています。

  • title
  • description
  • h1

【補足】XPathとは?

XPathとは、XML文章中の要素、属性値などを指定するための言語です。XPathを使うとHTML文章の中から、さまざまな情報を取得することが出来るようになります。

IMPORTXMLでタイトルを取得する方法

例えば、当サイトのタイトルを取得したい場合は以下の通りです。

=IMPORTXML(“https://published-articles.com/”, “//title”)

 

IMPORTXMLでメタディスクリプションを取得する方法

=IMPORTXML(A1,”//meta[@name=’description’]/@content”)
meta og:title を抽出する数式

=IMPORTXML(“https://published-articles.com/”,”//meta[@name=’description’]/@content”)

 

IMPORTXMLでmeta keywords を抽出する数式

=IMPORTXML(A1,”//meta[@name=’keywords’]/@content”)

分割したい場合はSPLIT関数と組み合わせます。

=SPLIT(IMPORTXML(A1,”//meta[@name=’keywords’]/@content”),”,”)

SPLIT関数で分割すると横方向に展開されるので、転置したい場合はTRANSPOSE関数も組み合わせます。

 

IMPORTXMLでH1を抽出する数式

=IMPORTXML(A1,”//h1″)

meta description を抽出する数式

 

IMPORTXMLでmeta og:description を抽出する数式

=IMPORTXML(A1,”//meta[@property=’og:description’]/@content”)

IMPORTXMLでmeta og:type を抽出する数式

=IMPORTXML(A1,”//meta[@property=’og:type’]/@content”)

IMPORTXMLでmeta og:url を抽出する数式

=IMPORTXML(A1,”//meta[@property=’og:url’]/@content”)

IMPORTXMLでmeta og:image を抽出する数式

=IMPORTXML(A1,”//meta[@property=’og:image’]/@content”)

IMPORTXMLでmeta fb:app_id を抽出する数式

=IMPORTXML(A1,”//meta[@property=’fb:app_id’]/@content”)

IMPORTXMLでmeta twitter:card を抽出する数式

=IMPORTXML(A1,”//meta[@name=’twitter:card’]/@content”)

IMPORTXMLでmeta twitter:site を抽出する数式

=IMPORTXML(A1,”//meta[@name=’twitter:site’]/@content”)

IMPORTXMLでmeta twitter:creator を抽出する数式

=IMPORTXML(A1,”//meta[@name=’twitter:creator’]/@content”)

IMPORTXMLでmeta og:site_name を抽出する数式

=IMPORTXML(A1,”//meta[@property=’og:site_name’]/@content”)

IMPORTXMLでcanonical URL を抽出する数式

=IMPORTXML(A1,”//link[@rel=’canonical’]/@href”)

【悲報】IMPORTXMLを使い過ぎるとスプレッドシートが重たくなる件

便利なIMPORTHTMLですが、実は何行も実行するとスプレッドシートの動きが遅くなってしまいます。。。

そんな時の対処法について以下の記事でまとめています。

IMPORTHTMLが遅いときの対処法を解説⇒作成中

 

また昔はIMPORTHTMLで以下の構文を書くと、Twitterのフォロワー数を取得することも出来ました。

=IMPORTXML(“https://twitter.com/アカウントURL[アカウント名]”,”//a[@data-nav=’followers’]/span[3]/@data-count”)

 

しかし、今ではTwitterの内部デザインの変更によりフォロワー数は計測できなくなりました。Twitterのフォロワー数を計測したい場合はGASを使いましょう。以下の記事で詳しく説明しています。(ちなみにコピペですぐ使えます!)

⇒作成中

コメント

タイトルとURLをコピーしました