読者です 読者をやめる 読者になる 読者になる

マネー報道 MoneyReport

マネーにまつわる報道を取り上げ、自分の切り口で切り取り、噛み砕いてお伝えします。

住所から郵便番号を取得したい!18,000件のデータを効率よくプログラムで!

フリーランスの日常 開発向け
スポンサーリンク
あとで読む

新Webサイト向け

今月中旬に当ブログのアクセス急減がありました。
実際にはアクセス解析の間違いで、アクセス急減自体は起きていませんでしたが色々と焦りました(-_-;

フリーランスとして独立してからは、主な収入源をWebサイトからの収益に依存しています。
外の仕事も受けてはいますが、労働に対しての対価を頂くスタイルのため仕事を頂いている間は良いですが、仕事が途切れるタイミングもありますので、出来ればWebサイトからの収益を増加させたいと考えています。

一応、当ブログにおいても2015年6月からアフィリエイト広告を解禁して収益増加を目指しました。

ですが6月はアフィリエイト収益は1万円のみ(>_<)
アフィリエイトはどうも苦手ですね(^^;

収益の多様化を目指すべく、Webサイトを新規に構築予定です。
現在は外の仕事が忙しいので、現在は企画・設計までで具体的な作業は秋頃になると思いますが、そこに向けての準備を始めようかな、と。

住所データだけしかない・・・

次に企画しているWebサイトの詳細は明かせませんが、全国に点在している建物を紹介したいと考えていまして、その建物データは手に入ったのですが、いかんせん住所のみで郵便番号がなかったんです(>_<)
郵便番号無しでもサービス自体に影響はないですが、利用する方の利便性を考えれば、出来れば郵便番号も掲載したいところ。

http://www.flickr.com/photos/8790226@N06/8550185994
photo by karen horton

データ量も多くて、全部のデータの件数としてはそれぞれ9,000件、6,000件、3,000件で3種類合わせて18,000件の住所データに郵便番号を振りたいという希望があります(私が)。

そこで住所から郵便番号を検索出来ないかな、と。
ざざっと探した感じでは「郵便番号から住所を検索するサービス」は多数ありました。

郵便番号検索 - 日本郵便

「郵便局の郵便番号検索」が一番メジャーですか。
住所から郵便番号を検索したり、その逆に郵便番号から住所を検索したりすることが出来ます。
でもこれで1件ずつ18,000件もやっていたら幾ら時間があっても足りません(>_<)

WebAPIとして有名どころはこちらの「郵便番号検索API」ですか。

郵便番号検索APIでは、郵便番号から住所を検索するWEBサービスAPIを無料提供しております。


郵便番号検索API

ですがこれだと郵便番号から住所を検索する事は出来ますが、住所から郵便番号を取得する事はできません。
惜しいっ!

サービス概要
ZIP SEARCH API SERVICE 「JIS X0401」対応版 の特徴

  • 郵便番号(3桁+4桁)から住所を検索するAPI「ZIP SEARCH API SERVICE」の JIS X0401(都道府県コード)対応版を開始しました。
  • 本サービスでは新たに住所から郵便番号を検索するためのデータも提供します。
  • JavascriptでもPHPでも扱いやすいようデータ形式もJSONP、JSONで無料提供します。
  • リクエスト方法は従来の「ZIP SEARCH API SERVICE」とは異なります。詳しくは解説をご覧ください。
  • 住所データは月初にデータベースを自動更新しています。


IW3 PROJECT ZIP SEARCH API SERVICE 「JIS X0401」対応版

こちらは「郵便番号 → 住所」、「住所 → 郵便番号」のどちらも使えるようです!
ですが、WebAPIですので当然JavaScriptなり、PHPなりでWebサービスとして組んで呼び出して使う必要があります。
PHPで書けなくはないのですが、Windowsのクライアントアプリを作る方が慣れているので、こちらでなんとかならないかな、と(^^;
あ、クライアントアプリからWebAPI呼んでも良いですか(^o^;
ただ18,000回もWebAPIを呼び出すのは、WebAPI提供側にとっては迷惑な大量呼び出しになるかな~とも(-_-;

うーん、ちょっとなぁ・・・。

で、次に見付けたのがコチラ。

サービス概要
本サービスは、日本郵便のWebサイトで公開されている郵便番号データを再配信するサービスです。

  • LZH形式ではなく、ZIP形式でダウンロード可能
  • ダウンロードしたらすぐに使える「加工済バージョン」も公開中
  • 郵便番号データが更新されたらメールでお知らせ
  • 郵便番号検索機能をWebサービスで利用可能


郵便番号データのダウンロード - zipcloud

こちらだと郵便番号と住所の紐付けを行ったデータをCSVファイルとしてダウンロードさせてもらえます。
しかも郵便局の生データだと「○○市一円」とか「以下に掲載がない場合」等の文言が入っていて使いにくいのですが、こちらはそういった文言を除去してくれてあり、非常に使いやすいとのこと。

郵便番号データ(加工済バージョン)のダウンロードについてはCSVファイルでダウンロードする事ができます。

f:id:MoneyReport:20150727094954j:plain

うん、良さそうですね(^^)w
今回はこちらを使って、簡単なクライアントソフトを作って18,000件の住所データを検索して郵便番号を出力する様にしたいと思います。

簡単な設計

後々プログラムを組むとき様に簡単な設計を行っておこうと思います。

【住所から郵便番号取得プログラム】

  1. 郵便番号データ(加工済バージョン)の内、検索に必要な列だけを残し加工する
  2. 加工した郵便番号データを構造体として定義してプログラムから読めるようにする
  3. 住所データ18,000件をCSVで用意する
  4. 住所データCSVをプログラムで読み込ませ、1件ずつループで郵便番号構造体とぶつけて一致した郵便番号を取得する
  5. 取得した郵便番号をテキストファイルに1行ずつ改行しながら出力する

と、こんな感じですかね?
これなら1日あれば作れますし、今後別の住所データを入手して新しく郵便番号を知りたくなった時にも一括で郵便番号を得る事が出来るので、良い感じかな、と(^-^)w

Excelアドインもあったけど

他にも探していたら、Windowsのフリーソフトで多数それっぽいものもありました。

Vectorですが郵便番号検索出来るソフトが多数公開されていました。

Vector 郵便番号

下の赤丸で囲ったソフトもダウンロードして使ってみたんですが、10件程度の変換に5分程度掛かってしまい、ちょっと厳しいかな、と。

f:id:MoneyReport:20150727114214j:plain

その後、300件一括で住所から郵便番号を検索させたら、1時間経過しても帰ってきません(^^;
これで18,000件取得するのは厳しいので、やはり自作かなぁ、と。

他のソフトも試してみても良いのですが、自分でも簡単に作れるので、自分でプログラム作って楽しみながらやろうかな~、と(^^)w

まとめ

  • 新しいWebサイト向けに住所データから郵便番号を取得したい!
  • 住所データが18,000件もあるので手作業では無理なので、プログラムで一括検索したい!
  • WebAPIで「住所→郵便番号」検索するものがあったが、WebAPIを18,000回も呼ぶのは迷惑(-_-;
  • 「住所と郵便番号を紐づけるCSVデータ」が入手できたので、自作のプログラムを組んで一括検索する!