>トップ
Google Count with start=990 query.
start=990 を付けると、えらい少ない総ページ数が出る検索語があるので、それに対応した google count スクリプトです
スクレイピングは、htree で解析して REXML 化して XPath でやっています
Google が返してくる内容に問題があることがあり、ruby 1.9 でこのスクリプトを実行して、UTF-8 な日本語文字列を検索した場合、HTree でのパースがうまくできないことがあります
#!/bin/sh exec ruby18 -x "$0" "$@" #!ruby # coding:utf-8 # vi:set ts=3 sw=3: # vim:set sts=0 noet: require "open-uri" require "cgi" require "htree" def make_url host, keyword "http://#{host}/search?q=#{CGI.escape keyword}&start=990" end def query keyword url = make_url "www.google.com", keyword tree = nil open url do |f| tree = HTree.parse f end body = tree.find_element "{http://www.w3.org/1999/xhtml}body" rexml_tree = body.to_rexml #results = REXML::XPath.match rexml_tree, '/xhtml:div[@id="ssb"][1]/xhtml:p[1]/xhtml:b[3]/text()[1]', {'xhtml' => 'http://www.w3.org/1999/xhtml'} # 2009/Nov/23 #results = REXML::XPath.match rexml_tree, '/div[@id="cnt"][1]/div[@id="ssb"][1]/p[@id="resultStats"][1]/b[3]/text()[1]' # 2010/Sep/23 results = REXML::XPath.match rexml_tree, '/div[@id="cnt"][1]/div[@id="subform_ctrl"][1]/div[2]/div[@id="resultStats"][1]/text()[1]' results[0] end #p(make_url("www.google.com", "ルビー")) key = ARGV[0] result = query key print "#{key}: #{result}\n"