2008-02-17
Re: No.1240 複数語句ヒット数一覧表示ってできる?
Ruby |
![]()
複数の語句を検索エンジンにリクエストして、それぞれが何件のヒット数があるかを一覧にして表示したら、おもしろくない?
既存の技術でできそう。ITは素人なんでわかりません。誰か教えてください~
No.1240 複数語句ヒット数一覧表示ってできる? - そういえばwakatakaだった - ハチロク世代
ということでちょっとやってみた。mingplotのコードをお借りしています。
require "iconv" require 'cgi' require 'net/http' require 'yaml' class Search def initialize @engine = "www.google.co.jp" end def search(key) Net::HTTP.start(@engine, 80) {|http| response = http.get("/search?q=#{key}") if m = /\bswrnum=(\d+)\b/.match(response.body) return count = m[1].to_i end } end end g = Search.new conv = Iconv.new("UTF-8","EUC-JP") yaml = YAML.load_file("search.yml") yaml.each do |key| count = g.search(key) puts "#{key} > #{count}" end
検索語句をsearch.ymlにセットして実行すれば、その分の検索ヒット数を表示するだけにしてます。まだGoogleでしかできないので、Yahooとかでもやれるよう改良してみる予定。多分Yahooは検索API使えば出来そうな気もする。
例:以下のようにsearch.ymlをセットした場合の検索結果
- generation1986 - ハチロク世代 - 86世代 - generation1976 - ナナロク世代 - 76世代 - generation1981 - ハチイチ世代 - 81世代
generation1986 > 6980 ハチロク世代 > 356000 86世代 > 3000 generation1976 > 3 ナナロク世代 > 31000 76世代 > 10900 generation1981 > 19 ハチイチ世代 > 6070 81世代 > 2540
コメントを書く