Получение Удаленный сервер вернул ошибку: (503) Сервер недоступен на 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) Сервер недоступен». Я провел некоторое исследование, и я также видел связанный с этим вопрос о переполнении стека. По-видимому, Google перестает обслуживать запросы, если многие из них исходят от одного и того же IP-адреса. Есть ли обходные пути, которые позволят мне проверить несколько тысяч страниц, скажем, за два или три часа.


person Syed Salman Akbar    schedule 31.03.2011    source источник


Ответы (2)


Есть ли какие-то обходные пути, которые позволят мне проверить несколько тысяч страниц, скажем, за два или три часа[?]

Неа. Вы просто запрашиваете слишком много данных. Может быть API JSON или XML для получения пакетных ответов, но я не знаю ни одного из Google.

person komiga    schedule 31.03.2011

Наконец, что мы сделали, так это получили прокси от провайдера прокси и использовали их. Пришлось использовать семафор, чтобы всем потокам был назначен новый прокси-сервер, при этом гарантируя, что прокси-сервер не используется более 3 раз в минуту, а прокси-серверы чередуются последовательно. Для этого нет другой работы.

person Syed Salman Akbar    schedule 16.12.2011