Windows サービスを作成しようとしています。サービスの目的は、データベースから URL を取得し、Google からページ ランクを確認することです。目的は、ページ ランクを偽装している人を捕まえることです。http://www.codeproject.com/KB/aspnet/Google_Pagerank.aspxでいくつかのコードを見つけて使用しました。
今ここにコードがあります
public static int GetPageRank()
{
string file = "http://toolbarqueries.google.com/search?q=info:codeproject.com";
try
{
//Request PR from Google
WebRequest request = WebRequest.Create(file);
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string data = reader.ReadToEnd();
reader.Close();
response.Close();
//Parse PR from string
int pageRank = -1;
if (data.IndexOf(':') != -1)
{
data = data.Substring(data.LastIndexOf(':') + 1);
}
int.TryParse(data, out pageRank);
return pageRank;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return -1;
}
}
100回の試行のようないくつかの試行の後にこのメソッドが呼び出されると、次の例外が発生し始めます。「リモート サーバーがエラーを返しました: (503) サーバーを利用できません」。私はいくつかの調査を行い、スタックオーバーフローに関する関連する質問も見ました。リクエストの多くが同じIPから発信された場合、Googleはリクエストの処理を停止するようです。たとえば、2 時間または 3 時間で数千のページランクをチェックできるようにする回避策はありますか。