hakeの日記

Windows環境でプログラミングの勉強をしています。

Wikipediaを読む

Rubyの勉強
キーワードの内容編集画面から記述内容を取得。
通信用語の基礎知識を変換していて思いついた内容。キーワードを上手く選んで取得したデータをEPWING化すれば結構便利な辞書になりそうかも。

require 'hpricot'
require 'open-uri'
require 'kconv'
$KCODE = "s"

URL1 = "http://ja.wikipedia.org/w/index.php?title="
URL2 = "&action=edit"


def get_text(key)
  if key == key.toutf8
    keyword = key
  else
    keyword = ""
    key.toutf8.unpack("H*").to_s.upcase.gsub(/(..)/) do |hex|
      keyword += "%#{hex}"
    end
  end
  puts "Keyword : " +  key.tosjis
# p keyword
  
  doc = Hpricot( open("#{URL1}#{keyword}#{URL2}").read )
  txt = doc.at(:textarea)
  str  = txt.inner_text
  if /^#REDIRECT.*\[\[(.*)\]\]/ =~ str
    r_str = $1
    return "redirect", r_str
  else
    if str != "\n"
      return "ok", str
    else
      return "no", nil
    end
  end
end


#KEYWORD = "zaurus"    # redirect to ザウルス
#KEYWORD = "ザウ"      # no keyword
KEYWORD = "ザウルス"   # puts textdata to test.txt


status, txt = get_text(KEYWORD)
if status == "ok"
    File.open("test.txt", "w") do |f|
      f.puts txt.tosjis
    end
end
puts "Status : " + status
puts " to " + txt.tosjis if status == "redirect"