総務省統計局のホームページのようにweb上には様々なデータが転がっていますが上手く活用されていないのが現状だと思います。その原因のひとつは、多くのデータが分散しているからではないかと思います。
本記事を最後まで読むと、 Google Colaboratory を活用してURLを登録(複数指定可能)するだけでweb 上の Excel ファイルを Google ドライブに保存出来るようになります。
一度URLを登録すれば繰り返し自動で保存出来るので、データ管理が楽になります。
目次
統計データ( Excel ファイル)の URL を調べる
総務省統計局のホームページに様々な統計データが眠っている
web上には様々なデータがありますが、本記事では総務省統計局のデータを活用することを目指します。
本記事では、この中でもサンプルとして2007年以降の「人口推計」を収集することを目指します。
ブラウザのデベロッパー・ツールを使用して絶対URLを知る
人口推計(2019年(令和元年)10月1日現在)のHPにアクセスします。
画面下部に統計データ(Excel形式)をダウンロードするリンクがあります。
リンクをクリックすることでダウンロード出来ますが、自動化するためにURLを調べます。
そこで、下記のようにデベロッパーツール(Chromeの場合、ctrl+shift+iで起動)を使用してリンクにはられているURLを調べます。デベロッパーツールを開き「ctrl+f」で検索窓を開きリンクの文字で検索します。a タグの href への設定値を調べます。
今回の場合は “zuhyou/05k01-3.xlsx” であること解りました。
URLには “http” や “https “から始まる絶対URLと “/” などから始まる相対URLがありますが、ここでは絶対URLが必要なので、このwebページの URL(https://www.stat.go.jp/data/jinsui/2019np/) と組み合わせてリンクの絶対URLを組み立てます。
今回の場合は “https://www.stat.go.jp/data/jinsui/2019np/zuhyou/05k01-3.xlsx” になります。
本当にこれでダウンロード出来るかどうかを確認するためにブラウザでURLを指定します。
ブラウザにURLを指定してダウンロードが始まれば成功です。
命名規約を予測して効率的に複数のURLを知る
2007年以降の「人口推計」を収集することが目標です。
現時点では2019年度のURLしか解らないので、もう一つサンプルでURLを取得して比較します。
先程と同様に2018年度を調べて比較すると下記のようになります。
2019年度(令和元年):https://www.stat.go.jp/data/jinsui/2019np/zuhyou/05k01-3.xlsx
2018年度(平成30年):https://www.stat.go.jp/data/jinsui/2018np/zuhyou/05k30-3.xls
どうやら、ディレクトリは西暦、ファイル名は和暦を使用していることが解ります。
URL を指定してGoogle ドライブにダウンロードする
Google ドライブをマウントする
Google Colab にて下記コードを実行して Google ドライブをマウントします。
# Googleドライブのマウント
from google.colab import drive
drive.mount('/content/drive')
ダウンロード対象のURLリストの準備
URLの命名規約が解ったので2007年以降のURLと保存時のファイル名(任意)を登録します。
# ダウンロード対象のURLリストの準備
# (x, y) = (URL, ファイル名)
urllist = [
("https://www.stat.go.jp/data/jinsui/2019np/zuhyou/05k01-3.xlsx", "jinsui_2019_zuhyou3_data.xlsx"),
("https://www.stat.go.jp/data/jinsui/2018np/zuhyou/05k30-3.xls","jinsui_2018_zuhyou3_data.xls"),
("https://www.stat.go.jp/data/jinsui/2017np/zuhyou/05k29-3.xls","jinsui_2017_zuhyou3_data.xls"),
("https://www.stat.go.jp/data/jinsui/2016np/zuhyou/05k28-3.xls","jinsui_2016_zuhyou3_data.xls"),
# ("https://www.stat.go.jp/data/jinsui/2015np/zuhyou/05k27-3.xls","jinsui_2015_zuhyou3_data.xls"), e-Startにデータあり
("https://www.stat.go.jp/data/jinsui/2014np/zuhyou/05k26-3.xls","jinsui_2014_zuhyou3_data.xls"),
("https://www.stat.go.jp/data/jinsui/2013np/zuhyou/05k25-3.xls","jinsui_2013_zuhyou3_data.xls"),
("https://www.stat.go.jp/data/jinsui/2012np/zuhyou/05k24-3.xls","jinsui_2012_zuhyou3_data.xls"),
("https://www.stat.go.jp/data/jinsui/2011np/zuhyou/05k23-3.xls","jinsui_2011_zuhyou3_data.xls"),
# ("https://www.stat.go.jp/data/jinsui/2010np/zuhyou/05k22-3.xls","jinsui_2010_zuhyou3_data.xls"), e-Startにデータあり
("https://www.stat.go.jp/data/jinsui/2009np/zuhyou/05k21-3.xls","jinsui_2009_zuhyou3_data.xls"),
("https://www.stat.go.jp/data/jinsui/2008np/zuhyou/05k20-3.xls","jinsui_2008_zuhyou3_data.xls"),
("https://www.stat.go.jp/data/jinsui/2007np/zuhyou/05k19-3.xls","jinsui_2007_zuhyou3_data.xls")
]
ダウンロードする
下記コードを実行して Google ドライブにダウンロードします。
# 指定のフォルダにExcelファイルをダウンロード
import requests
_basepath = r"/content/drive/MyDrive/Colab Notebooks/data/"
filelistInGoogleDrive = []
for (url, filename) in urllist:
urlData = requests.get(url).content
filefullpath = _basepath + filename
filelistInGoogleDrive.append(filefullpath)
print(filefullpath)
with open(filefullpath ,mode='wb') as f: # wb でバイト型を書き込める
f.write(urlData)
下記の通りダウンロード出来ます。
ダウンロードしたファイルを起動すると下記の通り、県別の人口が解ります。
おわりに
本記事では、Google Colaboratory を使用してweb 上の Excel ファイルを Google ドライブにダウンロードしました。ご参考になりましたらtwitterをフォローしてSNSでシェアして頂ければ幸いです。
次回は、ダウンロードした Excel ファイルを読み込み可視化することを目指します。
ご参考
ちなみに今回は下記 Chromebook を使用しました。
14.0型フルHD × Core i3 × メモリ8GB を満たす数少ない端末です。
軽くて持ち運びしやすく開発に耐えうるスペックなのでおすすめです。
価格:70,510円 |
Chromebook でプログラミングを始める方法については下記記事をご参考下さい。