image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« 先月度のページビューは 3700 越え | トップページ | ピックアップ: YSTの新アルコリズムはCGMを切り捨てる,親も子供も宿題丸投げ 代行業者が繁盛, etc... »

2007-09-01

郵便番号検索ページをプログラムから利用してみる

web ページの submit とその結果を得る練習を、郵便番号検索ページを使って行ってみた。
作ったプログラムは zipcode.rb
こんな風に動作する。

$ ruby zipcode.rb 皇居
1, 東京都 千代田区   皇居外苑: 100-0002

$ ruby zipcode.rb 100-000
1, 秋田県 秋田市   以下に掲載がない場合: 010-0000
2, 茨城県 水戸市   以下に掲載がない場合: 310-0000
3, 東京都 千代田区   以下に掲載がない場合: 100-0000
4, 東京都 千代田区   大手町: 100-0004
5, 東京都 千代田区   皇居外苑: 100-0002
6, 東京都 千代田区   千代田: 100-0001
7, 東京都 千代田区   一ツ橋(1丁目): 100-0003
8, 東京都 千代田区   丸の内(次のビルを除く): 100-0005
9, 東京都 千代田区   有楽町: 100-0006
10, 東京都 台東区   以下に掲載がない場合: 110-0000
11, 神奈川県 川崎市川崎区   以下に掲載がない場合: 210-0000
12, 静岡県 沼津市   以下に掲載がない場合: 410-0000
13, 三重県 四日市市   以下に掲載がない場合: 510-0000
14, 三重県 三重郡朝日町   以下に掲載がない場合: 510-0000
15, 三重県 三重郡川越町   以下に掲載がない場合: 510-0000
16, 京都府 京都市西京区   以下に掲載がない場合: 610-0000
17, 岡山県 倉敷市   以下に掲載がない場合: 710-0000
18, 福岡県 福岡市中央区   以下に掲載がない場合: 810-0000

複数単語で検索するときは " で囲んで指定する。

$ ruby zipcode.rb "100 大手町"
1, 群馬県 前橋市   大手町: 371-0026
2, 東京都 千代田区   大手町: 100-0004
3, 静岡県 沼津市   大手町: 410-0801

プログラムコードはこれ。

# excite の郵便番号検索ページを ruby から利用する。
#   useage: ruby zupcode.rb keyword
# 検索結果の最初のページ(50件まで) を表示する。

require 'rubygems'
require 'mechanize'
require 'open-uri'
require 'kconv'

# 郵便番号検索ページの URL
url = 'http://www.excite.co.jp/postcode/'
# keyword ='赤坂ミッドタウン・タワー(1階)'
# keyword ='100-0002'

keyword = ARGV.shift

agent = WWW::Mechanize.new                     # インスタンス生成
agent.user_agent_alias = 'Mac Safari'          #  User-Agentの設定
page = agent.get(url)                          # ページ取得

search_form = page.forms.first

search_form.keyword = keyword                  #  テキストボックス"keyword"に入力
search_results = agent.submit(search_form)     # フォームのsubmitボタンを押す
# puts search_results.body                     # 結果の取得

doc = Hpricot(search_results.body)

# submit せずに 直接 以下の URL を指定することもできる。
# doc = Hpricot(open('http://www.excite.co.jp/postcode/search/?keyword=' + keyword))

doc.search("//table[4]/tr") do |tr|
  address1 = tr.search('td[1]/font/text()').to_html.tosjis
  address2 = tr.search('td[1]/text()').to_html.tosjis
  zipcode = tr.search('td[2]/b/text()').to_html.tosjis

  puts address1 + " " + address2 + ": " + zipcode   if (address2 != "")
end
#--- End of File ---

« 先月度のページビューは 3700 越え | トップページ | ピックアップ: YSTの新アルコリズムはCGMを切り捨てる,親も子供も宿題丸投げ 代行業者が繁盛, etc... »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/184434/16310533

この記事へのトラックバック一覧です: 郵便番号検索ページをプログラムから利用してみる:

» 郡山市のお食事情報 [郡山市のお食事情報]
和食・洋食・居酒屋・ラーメンなどなど。福島県郡山市の食事やお酒の楽しめる場所の情報を集結!!郡山人の郡山人による郡山人の為の情報データベースサイト!! [続きを読む]

« 先月度のページビューは 3700 越え | トップページ | ピックアップ: YSTの新アルコリズムはCGMを切り捨てる,親も子供も宿題丸投げ 代行業者が繁盛, etc... »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク