1. Google スプレッドシートでウェブサイトからデータを取得する
気象庁のウェブサイトには、過去の気象データが表形式で公開されている。
Google スプレッドシートの importhtml 関数 を利用すると、このデータを簡単に表計算に取り込むことができる。
例えば、「気象庁の日ごとのデータ」から、
- 「現地の気圧」
- 「平均気温」
の列を抽出したいとする。
2. IMPORTHTML 関数の使い方
a. 対象の table 要素が何番目にあるか調べる
importhtml 関数では、HTML の table 要素を抽出できる。その際、対象の table 要素が何番目にあるか指定する必要がある。そのためには、
- データが表示されているページのソースを表示させる。(ブラウザとして Firefox を使っているなら、ページの適当なところで右クリック > 「ページのソースを表示」を選択。 )
- 抽出したデータを含む対象の table 要素が、ページの先頭から数えて何番目にあるか確認する。(`table’ で文字列の検索をするとよい。)
- Google スプレッドシート において、A1 セルを選択しておき、数式のアイコンをクリック > 「その他の数式」を選択。
b. ImportHtml 関数の引数
数式を挿入するためのダイアログが表示されたら、
を選択。その結果、A1 セルに次のように表示される。
=ImportHtml(URL, クエリ, 指数)
ここで指定する値は、
- URL : 対象のテーブルがある URL
- クエリ : “table”
- 指数 : そのページ内の何番目のテーブルを対象とするか?
(cf. Functions : Functions for external data - Google Docs Help Center)
変更(2014/03/02): 例題のデータがあるページのソースを調べたら、table 要素がいくつかあった。目的の table は 4 番目にあることが分ったので、セル A1 に以下のように入力する。
=ImportHtml("http://www.data.jma.go.jp/obd/stats/etrn/view/daily_s1.php?prec_no=44&prec_ch=%93%8C%8B%9E%93s&block_no=47662&block_ch=%93%8C%8B%9E&year=2008&month=11&day=&elm=daily&view=", "table", 4)
少し待つと、以下のような表が Google スプレッドシートに作成される。
残念ながら、対象のページの文字エンコーディングが Shift_JIS だったので文字化けしてしまった。
3. 必要なデータの抽出
次に、シートを新しく追加し、上記の表のうち A 列と F 列のみを参照する。
上記の表があるシートの名前が `シート1’ であるとすると、新しく追加したシートの A1, B1 にはそれぞれ次のように入力。
- A1 : ='シート1'!B5
- B1 : ='シート1'!G5
必要なだけ連続データを作成して完了。
4. 柔軟にデータを扱いたいなら、プログラミング言語を利用したほうが良い
このようなデータは、プログラミング言語を利用して必要な情報を抽出する方が良い。
しかし、Google スプレードシートを利用するとお手軽に抽出処理を行える。
0コメント:
コメントを投稿