K's Garage Blog

趣味(バイク/車/パソコン/DIY)のこととか、気になったこととか。

Googleの検索順位を調べてみる(その2)

この前作ったGoogleの検索順位を表示するスクリプトですが、11位以降の順位を検索するために、検索URLに"&num="を指定すると、通常のブラウザで検索した時と違う結果になってたので、修正してみました。

スポンサーリンク


実際のブラウザでの検索と同じになるように、"start"パラメータを使って表示開始インデックスを指定するようにしました。
"sleep 1"ですが、テストでがんがんスクリプト動かしてたら、googleから不正なリクエストっていわれて、一時的に接続拒否されちゃったので、念のため入れました。
sleepなしでも連続でスクリプトを実行しなければ大丈夫だとは思います。

検索単語を変えたり、いろいろ何回かやってみましたが、だいたいブラウザと同じ検索結果になりました。
(完全ではなく、たまに違うこともありましたが、だいたい同じでした)

以下、ソースです。
#!/usr/bin/env ruby
$KCODE='u'

require 'rubygems'
require 'hpricot'
require 'open-uri'
require 'cgi'

#検索単語
searchWord=CGI.escape("er34")

#順位を調べる対象のURL
searchUrl="kotyalog.blog91.fc2.com"

#検索対象ページ数(1ページは10件)
pagenum = 5

start = 0
pagenum.times {|index|
start = index * 10
#検索結果を取得する
doc = Hpricot( open("http://www.google.co.jp/search?lr=lang_ja&q=" + searchWord + "&start=" + start.to_s ).read )
#対象URLが含まれる検索結果を探し順位を表示する
(doc/"div.g").each_with_index { |result,i|
if (result/"span.a").inner_html =~ /#{searchUrl}/
puts "#{start+i+1}:#{(result/"span.a").inner_html}"
end
}
sleep 1
}



unix的にやるなら、わざわざURLのチェックとかはせずに、単に順位付きで一覧するスクリプトにして、grepで検索するんでしょうねぇ。

8/23から検索結果のHTMLの構造が変わってたので修正しました。
関連記事

スポンサーリンク

タグ(キーワード):プログラミング ruby
[ 2008/05/10 ] WEB | TB(0) | CM(0)
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL

プロフィール

kotyasuke

Author:kotyasuke
バイク/車/パソコン/DIYが趣味の中年オヤジです。
バイク:グロム
車:エブリイワゴン(DA17W)

タグリスト
人気ページ