Время ожидания cURL на сервере, но не на локальном - PullRequest
2 голосов
/ 26 декабря 2010

Застрял в этой конкретной проблеме. У меня есть код, который получает много страниц с форума, т.е. www.q8yat.net. Теперь у меня есть цикл, который использует curl для получения страниц с форума. Все отлично работает на моем localhost. Однако, когда я загружаю файлы на свой сервер и пытаюсь получить страницы, я получаю ошибку тайм-аута соединения обычно после загрузки фиксированного количества страниц, но это не всегда. Я использую следующие опции:

$options = array(
     CURLOPT_RETURNTRANSFER => true,     // return web page
     CURLOPT_HEADER         => false,    // don't return headers
     CURLOPT_FOLLOWLOCATION => true,     // follow redirects
     CURLOPT_ENCODING       => "",       // handle all encodings
     CURLOPT_USERAGENT      => "spider", // who am i
     CURLOPT_AUTOREFERER    => true,     // set referer on redirect
     CURLOPT_CONNECTTIMEOUT => 1,      // timeout on connect
     CURLOPT_TIMEOUT        => 1200,      // timeout on response
     CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects

 );

phpinfo моего сервера: http://topics4today.com/public/02_12_2010/fcrawl/src/phpinfo.php

Хорошо, я считаю, что форум использует модуль apache: 'mod_bwlimited', чтобы ограничить объем данных, которые я могу запросить, основываясь на моем ip. Возможность.

1 Ответ

1 голос
/ 03 января 2011

Хорошо, форум использует модуль apache: 'mod_bwlimited', чтобы ограничить объем данных, которые я могу запросить, основываясь на моем ip. Проблема может быть решена путем запроса только ограниченного количества страниц при каждом запуске скрипта. Например. Ваш скрипт запускается, запрашивает 2 страницы, останавливается, затем запускается снова (с использованием таймера JavaScript) и запрашивает еще 2 страницы, и это продолжается в цикле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...