20個ずつ調べられるので、5,000回の検索で済みます。
とは言え、大変な作業ですよね…。
CAPTCHAを使っているので上記サイトを使った自動化は難しいですし。
もっと良い手段がある気もしますが、1個ずつ調べるよりは少しは効率的だと思いましたので、回答いたしました。
参考になれば幸いです。
#完全な回答ではないのでポイント不要です#
本来ですと、googleのWeb-APIでPage Rankが応答されれば、
PC上で、Web-APIを叩くプログラムを書いてぐるぐる回せば、
サイトとそれに対応したページランクが集められるのですが、
現在のgoogle Web-APIではPage Rankは戻り値に含まれません。
場当たり的な方法ですが、、こんな方法もある、、ということで
ご回答します。
Page Rankは、IE等に、google toolbarを入れていれば
表示されますよね。
google toolbarのPage Rankはgoogleのサーバと通信して
その結果に基づき表示します。この通信はhttp通信を使って
います(SSLはかかっていません)。幸い、ethereal等の
ツールを使えば、http通信(SSLを使わない素の通信)の
パケットをキャプチャして表示することができます。また、
Page Rankに関する通信パケット中には、Rankという文字が
必ず含まれます。
ですので、100000個ものサイトを自動でやろうとするなら、
Windowsの.batファイルかなんかバッチで走らせて
IEでどんどんページを表示させ、(tool barに通信させて)
その通信内容を、tetherealで自動的に情報を集める。。と
いうわけです。
具体的に書きますと。。
tetherealが使える環境でパケットをキャプチャし、
パケット中の、Rankという情報付近を抜き出せば
Page Rankが得られます。
例えば、Windows上で、CygWin + Etherealの環境があれば、
以下のコマンドを使えば、パケット中、Rankという文字を含む
情報を検索して閲覧することができます。
$ ./tethereal.exe -V -f "tcp port 80" | grep Rank
(意味は、-V:詳細表示、 -f "tcp port 80" http通信だけ取得、
grep Rank : Rankが含まれる行だけ表示)
tetherealの入れ方は、googleなんかで、etherealとすれば
見つかります。(参考ページを追伸に付けます)
もっと使いやすいパケットキャプチャもあるかも
しれません。なお、grepコマンドはCygwinのを使っています。
ややこしすぎてすみません。どうにかこうにかやろうとしたら
こんな方法もあるということで、もし周りに、こういった事に
詳しい人がいたら伝えてみてください。
なお、自分でも少しやってみましたが、1サイトに対して、複数の
Rankパケットが返ることもあり、何件かはピックアップして
目視確認も必要です。。
リバースエンジニアリングっぽいですが、tool barをどうにか
しているわけではなく、通信を見てるだけなので許される範囲かとは
思います。(多分。。)
■追伸
URL必須だったので、参考サイトを追記します
etheralの参考サイト
http://www.space-peace.com/ethereal/
cygwinの本家サイト
ここのようなサイトで、後はスクリプトなどを書いて10000回分やってファイルに落としたりしたらどうでしょうか。
でも、サーバの負荷などを考えて作らないと、怒られます^^;
10000件をリンクしたページを作り、どっかにアップしそのページのURLを下記サイトに通す。
一発でページランクが表示されるでしょう。
その結果を保存して終了。
PerlモジュールのGoogle::PageRankを使われては如何でしょうか。
URLリストを作成し、Perlスクリプトでそれぞれの結果をテキストファイルに記述していくのが一番容易な方法だと思われます。
以前、必要に迫られて作ったWindowsのコマンドラインのプログラム(EXE)がありましたので、それを公開します。
http://www.geocities.jp/aztectim/software/index.html#PAGERANK
WWW::Google::PageRankをそのまま用いたPerlのスクリプトをEXEにしたものです。使い方は単純でpagerank.exeにサイト名(http://www.hatena.ne.jpのようにhttp://をつけた形式)を引数として渡すことでPageRankを取得できます。
c:\>pagerank サイト名
また、上のページにも書いてありますが、ZIPファイルの中にpagerank.vbsというVBScriptを入れてあります。こちらを使うと、サイト名+改行で列挙したファイルを読み込ませることで、サイト名とPageRankをCSV形式で出力させることができます。
a.txtというファイルに
と記述されていた場合、次のような出力を得られます。
c:\>cscript -nologo pagerank.vbs a.txt
WWW::Google::PageRankを使って直接Perlスクリプトを書くほうが効率的ですが、もしPerlを使えない環境の場合にはこちらをお使い下さい。CSVをファイルに出力したい場合にはリダイレクトさせてください。
Googleのサービス規約に反しないように気をつけないといけません。そもそもページランクはツールバー以外では、使用しないようにGoogleは言っています。Pagerank表示は流行っていますが、Googleがその気になり次第で、彼らのサイトがサーチエンジンから除去される事もあります。ページランクをチェックするにあたって、個人でスクリプトを作り100000ものページランクを調べるなら、IPをブロックされるでしょう。Googleのツールバーで100000のページに訪れるか、 bonlifeさんの言っているように http://www.pagerank.net/pagerank-checker/ で20個ずつ5,000回検索するしかありません。
コメント(0件)