2012年04月05日

Rubyで伏字検索

Rubyで伏字を解析するプログラムを書いてみました。
fuseji.net に接続して、返ってきた検索結果から
正規表現で取り出します。

検索結果は配列に入りますので、ご利用くださいまし。

#!/usr/bin/ruby -Ku
# -*- coding: utf-8 -*-

require "net/http"
require "kconv"

=begin
 伏字検索 検索サンプルプログラム
 <tt>〜</tt>取り出し結果を配列で返す

 動作確認バージョン
  * ruby 1.9.3 i386-mingw32
  * ruby 1.8.7 i386-mswin32
=end
def fuseji_search(str)
  ret = []
  return ret if str.size == 0

  escaped_str = "/" + URI.escape(str)
  body = ""
  Net::HTTP.version_1_2
  Net::HTTP.start('fuseji.net',80) {|http|
    response = http.get("#{escaped_str}", 'User-Agent' => "sample.rb" )
    body = response.body
  }

  body.each_line do |line|
    until line.empty? do
      case line
      when /\A\s+/
        ;
      when /\A<tt>(.*)<\/tt>/
        ret << $1
      when /\A./
        ;
      else
        raise RuntimeError, 'must not happen'
      end
      line = $'
    end
  end

  ret
end

=begin
 サンプルメイン
 伊集院○を検索、検索結果を表示する
 結果はUTF-8で得られるので必要に応じて文字コードを変換すること
=end

result = fuseji_search("伊集院○")
print "マッチ数: #{result.size}\n"
result.each{|word|
  print word + "\n"
}
posted by newonone at 23:55| Comment(0) | 伏字検索
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: