類語検索 (2)
いつぞやの類語検索プログラム。私的には超便利。
$ thesaurus 格言 DOUGI: ことわざ, マキシム, 金言, 座右の銘, 処世訓, 寸言, 名言 KOUGI: 言葉|句, せりふ, 語句, ロ舌 KYOUGI: アフォリズム, エピグラム, キャッチフレ―ズ, スロ―ガン, モット, モッ卜ー, 警句, 寸鉄, 標語, 名句, 名文句, 箴言 KANREN: 諺語, 古諺, 俗諺, 俚諺, 家訓, 戒め, 合言葉, 座右銘, 信条, 人生訓, 至言, ご託, キーワード, スローガン, フレ―ズ, ―語, 花言葉, 慣用句, 仰せ, 禁句, 句, ロ上, 合い言葉, 千言万語, 宣旨, 早ロ言葉, 文句ない, 言葉|語句, ―言, ―言半句, ―ロ, 忌み言葉, 季語, 結語, 言, 言の葉, 言辞, 言質, 言説, 語, 差別語, 詞, 詩語, 辞, 前言, ニ言, 百万言, 文言, 弁, 万言, 類語 HANGI:
パスワード漏らすわけでもないし、正当な HTTP アクセスなので、問題ないような気がしてきたので公開。といいつつホスト名を隠す。
#!/usr/bin/ruby -Ke
require 'net/http'
Net::HTTP.version_1_2
require 'uri'
require 'kconv'
require 'htree'
require 'rexml/document'
if __FILE__ == $0
word = URI.encode(ARGV.shift.tosjis)
uri = nil
cookie = ""
#proxy = Net::HTTP::Proxy("proxy.xxx.jp", 8080)
proxy = Net::HTTP
proxy.start('foo.co.jp', 80) { |http|
res = http.post('/bar.cgi', "key=#{word}", {
"Referer" => "http://baz.co.jp/quax/bar.htm"
})
cookie = res['set-cookie']
uri = URI.parse($1) if res.body.toeuc =~ /<meta http-equiv="REFRESH" content="0;URL=(.+?)"/
}
if !uri.nil? && !cookie.empty?
proxy.start(uri.host, uri.port) { |http|
res = http.get(uri.path + "?" + uri.query, {'cookie' => cookie})
HTree(res.body.toeuc).to_rexml.elements.each('//select') do |s|
puts(s.attributes['name'] + ": " +
s.elements.to_a('option').map{|o| o.text.chomp}.partition{|e| e !~ /[*]+/}[0].join(", ")
)
end
}
end
endfoo, bar, baz, quax は該当サイトの HTML ソースを見て変換してください。proxyあり/なしらへんをもっと綺麗にできると思うけど放置。