簡體   English   中英

在ttp://toolbarqueries.google.com/search?q = info :(域名)上獲取“遠程服務器返回錯誤:(503)服務器不可用”

[英]Getting “The remote server returned an error: (503) Server Unavailable” on ttp://toolbarqueries.google.com/search?q=info:(domainName)

我正在嘗試創建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會停止提供請求。 是否有任何變通辦法,使我可以在兩個小時或三個小時內檢查幾千個頁面排名。

是否有任何變通辦法,使我可以在兩個小時或三個小時內檢查幾千個頁面排名[?]

不。 您只是在請求太多數據。 可能會有JSON或XML API來獲取批處理響應,但是我不知道來自Google的任何信息。

最后,我們所做的是從代理提供者那里獲取代理並使用它們。 必須使用信號量,以便為所有線程分配一個新的代理,同時確保代理每分鍾不被使用超過3次,並且代理以循環順序的方式旋轉。 沒有其他解決方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM