類語検索 (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 end
foo, bar, baz, quax は該当サイトの HTML ソースを見て変換してください。proxyあり/なしらへんをもっと綺麗にできると思うけど放置。