K's Garage Blog

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

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサーリンク

スポンサーリンク

タグ(キーワード):
[ --/--/-- ] スポンサー広告 | TB(-) | CM(-)

Googleの検索順位を調べてみる

rubyでGoogleの検索順位を表示するスクリプトを書いてみました。
別に自分のブログの順位が気になるわけではないのですが、会社でいろいろと・・・。
毎回手で検索するのは面倒なので、試しにスクリプト書いてみました。
いけてそうなので、GW明けたら、Linuxサーバのcronにでも仕込もうかと。

HTMLの解析には、「hpricot」を使いました。
インストールは、「gem install hpricot」で。
hpricotの使い方は、ここここを参考にしました。
Googleの検索URLのパラメータはこちら

試した環境は、Mac OSX 10.5です。

とりあえず検索パラメータは最低限を指定してみました。
標準だと10位までしか検索しないので、パラメータで"&num=50"のように追加すると50位までで検索してくれます。
(これを指定すると、指定していない時とちょっと順位が変わるのはなぜ??)

検索結果のHTMLですが、「div class="g"」が検索結果のひとつづつに相当します。
で、各結果の一番したに表示されているURLは「span class="a"」の部分です。
なので、検索結果のHTMLから「div class="g"」を探し出し、その中の「span class="a"」を取り出し、検索対象URLが頭から一致した場合に、表示するようにしました。

以下のソースを実行すると、
6:kotyalog.blog91.fc2.com/blog-entry-247.html - 39k
と表示されます。現時点で、"takupapa"で検索すると6位ですね。
("&num=50"をつけるとなぜか9位)

ソースです。
require 'rubygems'
require 'hpricot'
require 'open-uri'
require 'cgi'

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

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

#検索結果を取得する
doc = Hpricot( open("http://www.google.co.jp/search?q=" + searchWord + "&lr=lang_ja").read )

#対象URLが含まれる検索結果を探し順位を表示する
(doc/"div.g").each_with_index do |result,i|
if (result/"span.a").inner_html =~ /^#{searchUrl}/
puts "#{i+1}:#{(result/"span.a").inner_html}\n"
end
end


rubyとかだとすぐに試せるし、便利なライブラリそろってるので、簡単にできるのいいですね。
とにかく、書いたらすぐに試せて、結果が見えるし。

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

スポンサーリンク

スポンサーリンク

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












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

プロフィール

kotyasuke

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

タグリスト
人気ページ


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。