Hatena::Groupgeneration1986

ハチロク世代みたいな

2008-02-17

Re: No.1240 複数語句ヒット数一覧表示ってできる?

| Re: No.1240 複数語句ヒット数一覧表示ってできる? - ハチロク世代みたいな を含むブックマーク はてなブックマーク - Re: No.1240 複数語句ヒット数一覧表示ってできる? - ハチロク世代みたいな Re: No.1240 複数語句ヒット数一覧表示ってできる? - ハチロク世代みたいな のブックマークコメント

複数の語句を検索エンジンにリクエストして、それぞれが何件のヒット数があるかを一覧にして表示したら、おもしろくない?

既存の技術でできそう。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