プログラミングは一切不要!スプレッドシートの関数だけでWEBサイトの情報収集を自動化する

★気に入ったらシェアをお願いします!


こんにちは!
データアナリストのタダケン(@tadaken3)です。

データ分析やレポート作成をしていて、WEBサイト上にあるデータを使ってみたいって思うことあったりしませんか。5行ぐらいのデータであれば、コピペしてすむかもしれませんが、大量にデータがある場合は、そうもいきません。

もしプログラミングができるのであればスクレイピングという方法を使って、WEBサイトから情報取得することもできます。しかし、スクレイピングは実はプログラマだけの特権ではありません。

Googleスプレッドシートを使えば、標準の関数だけでスクレイピングできてしまうのです。今回は、WEBサイトのデータを簡単に取得する方法をお伝えします。

IMPORTHTML関数を使ってWEBサイトのリストやテーブルの情報取得する

WEB上にあるテーブルやリストからデータを取得するには、Googleスプレッドシートに標準で搭載されているIMPORTHTML関数を使います。

書き方は

=IMPORTHTML(URL,クエリ,指数)

です。

クエリには、”table”(表)か”list”(リスト)を指定します。

指数ではWEBサイト上に含まているテーブルもしくはリストのうち、何個目のテーブル・リストを取得するのか指定します。例えば、WEBサイトに3つのテーブルがある場合、2個めのテーブルを取得したい場合は、2を入れます。

IMPORTHTML関数を実践!

具体的な例を見ていきましょう。今回は「いつも隣にITのお仕事」ブログの以下の記事からテーブルとリストをそれぞれ取得してましょう。Google Apps Scriptで積み上げグラフを作る方法を解説した記事ですね。

【複数の要素もひと目で分かる】Google Apps Scriptで積み上げ棒グラフを作成する方法
Google Apps Scriptを使って、複数の系列を持ったグラフを作成する方法を解説します。setStackedメソッドを使い、積み上げ縦棒グラフを作成し、データの可視化を行います。

まずはテーブルの取得方法です。

=IMPORTHTML(“https://tonari-it.com/gas-chart-setstacked/”,”table”,3)

リストを取得したい場合は、クエリにリストを指定します。

=IMPORTHTML(“https://tonari-it.com/gas-chart-setstacked/”,”list”,12)

結果はこのようになります。記事の中にあるテーブルと同じ情報が取得できていたら成功です。

IMPORTXML関数を使ってタグを指定して情報を取得する

WEBサイト上にあるほしいデータが必ずしもテーブルやリスト形式になっているとは限りません。その場合は、IMPORTXML関数を使って、HTMLのタグを指定して情報を取得することができます。

書き方は

=IMPORTXML(URL,XPATH)

です。

タグを指定するのに、XPathという構文を使って指定します。

IMPORTXML関数を実践!

IMPORTXML関数を具体例を使ってご説明しますね。今度の例では、「いつも隣にITのお仕事」の記事一覧ページからタイトル一覧を取得していきます。記事一覧は以下のページです。

実際にタイトル一覧を取得するには以下のように書きます。

=IMPORTXML(“https://tonari-it.com/author/tadaken3/”,”//h2/a/@title”)

“//h2/a/@title”はh2タグの下にあるaタグのtitleを取得するというのを表しています。”/”(スラッシュ)がタグのツリー構造を表していて、@titleで要素を指定しています。

結果はこのようになります。

URLを取得したい場合は、”//h2/a/@href”と指定します。例えば、2つを組み合わせて、このような形でタイトルとURL一覧を取得することもできます。

XPathは少しややこしいかもしれませんが、覚えることでHTMLの要素を自在に取得できるようになります。XPathの具体的な記述方法は以下のサイトを参考がなります。少しずつ試してみてくださいな。

最近クローラーを作成する機会が多く、その時にXPathが改めて便利だと思ったので XPathについてまとめてみました! XPathを学ぶ方の役に立てれば幸いです。 # 初級編 ## XPathとは XPathはXML文章中の要素、属...

まとめ

今回はスプレッドシート標準の関数を使って、WEB上のデータを取得する方法をお伝えしました。

  • IMPORTHTML関数でテーブルやリストの情報を取得する
  • IMPORTXML関数でHTMLのタグを指定して情報を取得する

これらの関数を使えば、WEB上のデータを簡単に取得することができます。もちろんWEBサイトが更新されれば、スプレッドシートのデータも自動で更新されます。外部データの分析をする際などにご活用ください!次回もデータ分析に関するテクニックをお伝えしていきますね。

どうぞ、お楽しみに!

Twiiterで仕事効率化やプログラミングに関することを情報を発信しています。「いつも隣にITのお仕事」の裏話をお伝えしたり、読者の方と交流したりしています。こちらからTwitterアカウントのフォローをお願い致します。


The following two tabs change content below.
『プランノーツ』ではGoogle Apps Script、Pythonを使ってのツールの開発をしています。本業はとある会社のデータアナリストです。 ブログ『肩の力を抜いて』の管理人もやっています。「ラクして成果を上げる仕組みを考える」をモットーにPython、Google Apps Scriptを使って、「実務で使える具体的なテクニック」を公開しています。あわせて読んでいただければうれしいです。