Rubyを使ってZIPファイルをダウンロードする

はじめに

今郵便番号検索用のプログラムを作っているのですが、全国の郵便番号情報(zipcode)が詰まったファイルが日本郵政グループのサイトにあります。これをRubyでダウンロードする際の処理をメモ程度ですが記載します。

uire 'open-uri'

url = "https://www.post.japanpost.jp/zipcode/dl/kogaki/zip/ken_all.zip"
filename = "ken_all.zip"

File.open(filename, "wb") do |f|
  data = open(url, "r:Shift_jis:utf-8").read
  f.write data
end

data = open(url, “r:Shift_jis:utf-8”).read」の箇所は、「data = open(url).read」でも問題ありませんでした。

zipファイルのダウンロードなので特に外部エンコードと内部エンコードを指定する必要はなかったようです。

ただ、Excelファイルを読み込んだり書き込んだりする際は、上記の通りShift_jisで読み込み、Rubyでの内部処理ではutf-8で処理するよう記述した方がよいと思います。

ExcelとかWindows系は改行コードがCRLFですしね。

ダウンロードが終わればzipファイルを解凍し、出てきたCSVファイルのデータ(約12万行あります)をDBに格納します。

格納後、郵便番号から住所を検索する関数を実装することと、住所の一部からマッチしたレコードを抽出処理させる関数も作る予定です。

まっ、ある程度の住所検索ができるものを作ろうと思います。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次