image

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

検索

最近のトラックバック

無料ブログはココログ

« ピックアップ: YSTの新アルコリズムはCGMを切り捨てる,親も子供も宿題丸投げ 代行業者が繁盛, etc... | トップページ | xfy/xvcd の svg でマウスイベントを扱う »

2007-09-02

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

前回は、結果を cosole に出していた。
xfy/xvcd で利用するには、xml 形式で出力したほうが便利である。
そこで、rss 形式出力するように変更した。

$ ruby zipcode-rss.rb "100-0002" | nkf -s
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>zipcode</title>
    <link>http://www.excite.co.jp/postcode/</link>
    <description>search zipcode</description>
    <item>
      <title>100-0002</title>
      <link>http://www.excite.co.jp/postcode/list/1000002.html</link>
      <description>1, 東京都 千代田区  皇居外苑</description>
      <pubDate>Sun, 02 Sep 2007 12:41:33 +0900</pubDate>
    </item>
  </channel>
</rss>

下に ruby コードを示す。
require 'kconv' を使った 最後の行の .to_s.toutf8 をなくせれば、jruby でも動作するのだが...。
toutf8 をやめると、私の環境では、shift_jis で出力されてしまう...

# excite の郵便番号検索ページを ruby から利用する。
# 検索結果の最初のページ(50件まで) 内容を rss にする。
#   useage: ruby zupcode-rss.rb keyword
#
#   キーワードには、 住所の一部、郵便番号の一部 を指定できる。
#   space で区切って、複数を指定することも可能。
#
# keyword ='赤坂ミッドタウン・タワー(1階)'
# keyword ='100-0002'

$KCODE = "utf-8"

require 'rubygems'
require 'hpricot'
require 'open-uri'
require 'rss'
require 'kconv'

# 郵便番号検索ページの URL
url = 'http://www.excite.co.jp/postcode/'
rdf = 'zipcode.rdf'

keyword = ARGV[0]

doc = Hpricot(open('http://www.excite.co.jp/postcode/search/?keyword=' + keyword))

# rss を生成する
rss = RSS::Maker.make("2.0") { |maker|
  maker.channel.about = rdf
  maker.channel.title = "zipcode"
  maker.channel.description = "search zipcode"
  maker.channel.link = url

  doc.search('//table[4]/tr') { |tr|
    address1 = tr.search('td[1]/font/text()').to_html
    address2 = tr.search('td[1]/text()').to_html
    zipcode = tr.search('td[2]/b/text()').to_html
    if (address2 != "") then
      item = maker.items.new_item

      item.date = Time.new()
      item.title = zipcode
      item.description = address1 + address2
      tr.search('td[4]/font/a').each {|e|
        item.link = 'http://www.excite.co.jp' + e.attributes['href']
      }
    end
  }
}

puts rss.to_s.toutf8
# open(rdf, 'w') {|file|
#  file.write(rss.to_s.toutf8)
#}
#--- End of File ---

« ピックアップ: YSTの新アルコリズムはCGMを切り捨てる,親も子供も宿題丸投げ 代行業者が繁盛, etc... | トップページ | xfy/xvcd の svg でマウスイベントを扱う »

コメント

コメントを書く

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

トラックバック

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

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

« ピックアップ: YSTの新アルコリズムはCGMを切り捨てる,親も子供も宿題丸投げ 代行業者が繁盛, etc... | トップページ | xfy/xvcd の svg でマウスイベントを扱う »

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 あわせて読みたい

リンク