情報管理LOG
yoshinon

ITやモバイル機器、iPhone、手帳や本など。

スプレッドシートにWeb上のデータをスクレイピングする方法

2021年02月15日
未分類 0
2021021500.png


情報管理LOGの@yoshinonです。
Googleスプレッドシートを最近ゴニョゴニョしているのですが、その中でWebのデータをスプレッドシートに取り込むというのもやっています。これがね、案外簡単なんですよ。というわけで、全開のスプレッドシートつながり第2弾でWebデータのスクレイピングしたのをスプレッドシートに取り込む方法についてです。



  
【 スプレッドシートにWeb上のデータをスクレイピングする方法 】  

 1.スプレッドシートは、Webからも取り込めるよ

 2.Web上のデータをスクレイピングしてスプレッドシートに取り込む方法








前回は、他のスプレッドシートのデータを参照する方法について書きました。元々、Webサービスであるので、むしろローカルデータを扱うエクセルより実は柔軟に扱えたりするのですよね。

スプレッドシートで他のシートの値を参照する方法


前回のは、スプレッドシート同士のデータを参照するというものでしたが、Web上のデータを取り込めないでしょうか?

例えば、こんなの。

気象データ(都道府県データランキング)

Image from Gyazo
※引用:気象データ(都道府県データランキング)


こういうデータを気軽に引っ張ることができたら色々捗りそうですよね?





では、さっそくやっていきましょう。
今回使う関数は、IMPORTHTMLというやつです。これは、Web上のデータを引っ張ってくるための関数です。
構文は、こんな感じ。

IMPORTHTML(URL, クエリ, 指数)


よく分からない人にとっては何のこっちゃって感じですよね。

URLは、そのまま参照したいURLです。

クエリは、2種類しかありません。"list"(リスト)か "table"(表)だけです。リストだったら"list"だし、表だったら"table"ですね。今回だったら、表からデータを抜きたいので、"table"となります。

で、分かりにくいのは、この指数です。そのサイトのHTMLソース内にある定義されている番号なのです。が、ぶっちゃけソースを眺めてどれかなぁとか丁寧にやっても良いのですが、膨大な量でない限りは、決め打ちで「だいたい2ぐらいかな?」みたいに当てずっぽうでやってみても良いと思います。1回で上手くいかなくても、数回以内に目的のデータにあたります。

では、先ほどのサイトのデータをスクレイピングしてみましょう。
数式は、こんな感じ。

=IMPORTHTML("https://uub.jp/pdr/g/w_7.html","table",6)

ハイ!できました。

2021021502.png



ついでに、こちらのデータもスクレイピングしてみますか。

世界の株価指数と米長期金利 - Yahoo!ファイナンス


ハイ!簡単!

2021021503.png



ちなみに、数式は左上の1箇所だけ入力するだけで良く、それぞれの表のデータの大きさに合わせて勝手にデータを各セルに引っ張ってくれます。しかも、当たり前だけど、これらスクレイピングした表は、元となるデータが更新されれば、自動的に更新されます。




 eyeglass2.png 情報管理LOGの眼
 Web方面は、スプレッドシートに一日の長あり

Microsoftもこの数年で365において、Web連携を一気に進めてきました。このあたりも、いずれ情報管理LOGでとりあげていきますが、それでもGoogleスプレッドシートの方がまだ一日の長ありですね。簡単さやデータの取り回しの良さは、さすがとしか言い様がありません。追撃するMicrosoftもグイグイ来るでしょうけどね。お互い切磋琢磨してくれると、ユーザーとしては有り難いばかりです。



ライフハックの道具箱 2020年版
倉下忠憲(著)

5つ星のうち3.6
250円


関連記事

コメント0件

コメントはまだありません