C# 获得;远程服务器返回错误:(503)服务器不可用;在…上ttp://toolbarqueries.google.com/search?q=info:(域名)

C# 获得;远程服务器返回错误:(503)服务器不可用;在…上ttp://toolbarqueries.google.com/search?q=info:(域名),c#,toolbar,pagerank,C#,Toolbar,Pagerank,我正在尝试创建windows服务。这项服务的目的是从数据库中提取URL,并从google检查它们的页面排名。这样做的目的是抓住任何一个伪造页面排名的人。我在上找到了一些代码并使用了它 下面是代码 public static int GetPageRank() { string file = "http://toolbarqueries.google.com/search?q=info:codeproject.com"; try {

我正在尝试创建windows服务。这项服务的目的是从数据库中提取URL,并从google检查它们的页面排名。这样做的目的是抓住任何一个伪造页面排名的人。我在上找到了一些代码并使用了它

下面是代码

  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,谷歌就会停止服务。有什么办法可以让我在两到三个小时内检查几千个PageRank

有没有什么办法可以让我在两个小时或三个小时内检查几千个PageRank[?]


没有。您只是请求了太多的数据。可能有一个JSON或XML API来获取批处理响应,但我不知道Google有任何响应。

最后我们做的是从代理提供商那里获取代理并使用它们。必须使用一个信号量,以便所有线程都将被分配一个新的代理,同时确保代理每分钟使用不超过3次,并且代理以循环顺序方式旋转。这方面没有其他的工作