Получение «Удаленный сервер возвратил ошибку: (503) Сервер недоступен» на ttp: //toolbarqueries.google.com/search? Q = info: (имя_домена) - PullRequest
0 голосов
/ 31 марта 2011

Я пытаюсь создать службу 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.Есть ли какие-то обходные пути, которые позволят мне проверить несколько тысяч страниц за, скажем, два часа или три часа.

Ответы [ 2 ]

0 голосов
/ 16 декабря 2011

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

0 голосов
/ 31 марта 2011

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

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

...