ЗАВИТОК выходит из строя после многих запусков, в которых говорится "не удалось установить соединение" или "время ожидания подключения() истекло"


Я пытаюсь проиндексировать многие сотни веб-страниц.

Короче говоря

  1. Вызов PHP-скрипта с помощью CRON-задания
  2. Получение некоторых (всего около 15) наименее недавно обновленных URL-адресов
  3. Запрос URL-адресов тезисов с помощью CURL

Проблема

В разработке все шло нормально. Но когда я начал индексировать гораздо больше, чем некоторые тестовые страницы, CURL отказался работать после нескольких запусков. Он не получает никаких данных с удаленного сервера.

Ошибка сообщения

Эти ошибки CURL распечатал (конечно, не сразу)

  1. не удалось подключиться к хосту
  2. Время ожидания операции истекло через 60000 миллисекунд с получением 0 байт

Я работаю на V-сервере и попытался подключиться к удаленному серверу с помощью Firefox или wget. Тоже ничего. Но при подключении к этому удаленному серверу с моего локального компьютера все работает нормально.

Ожидая несколько часов, он снова работает для некоторых запусков.

Мне кажется, что проблема на удаленном сервере или защита от DDOS-атак или что-то в этом роде, что вы, ребята, думаете?

Author: Robert, 2012-05-08

2 answers

Вам следует использовать прокси-серверы, когда вы отправляете слишком много запросов, так как ваш IP-адрес может быть заблокирован сайтом с помощью их защиты от DDOS или аналогичных настроек.

Вот что следует отметить: (Что я использовал для очистки данных веб-сайтов)

1. Используйте прокси-серверы.

2. Используйте Случайные Пользовательские агенты

3. Случайные референты

4. Случайная задержка в кронах.

5. Случайная задержка между запросами.

Что бы я сделал, так это заставил скрипт работать вечно и добавил сон в между.

ignore_user_abort(1);
set_time_limit(0);

Просто запустите его, посетив URL-адрес на секунду, и он будет работать вечно.

 1
Author: Kishor, 2012-05-09 07:18:41

Как часто выполняется сценарий? Это действительно может вызвать некоторую защиту, подобную DOS. Я бы рекомендовал реализовать некоторую случайную задержку, чтобы запросы казались задержанными на некоторое время, чтобы они выглядели более "естественными"

 1
Author: petr, 2012-05-08 11:35:48