ФорумПрограммированиеPHP для идиотов → curl и прокси

curl и прокси

  • aleks_a

    Сообщения: 2 Репутация: N Группа: Кто попало

    Spritz 21 июня 2012 г. 16:09

    Привет всем! Ребята, подскажите, пожалуйста: есть киношный сайтик на Укозе. Вот, пишу скрипт, который ищет "нерабочие" плеера на этом сайте(чтобы я их мог оперативно заменять). Для работы скрипта нужно использовать прокси, т.к. при частом запросе страниц IP Укозом блокируется(защита от ДДОС). Скрипт разделен на несколько кусков: функция для получения прокси, функции для проверки различных плееров(Мэйл.ру, Вконтакте, КИносток и Муви) и кусок, который через прокси берет хтмл страниц сайта. Вот код, который берет контент из страниц для последующего анализа плееров:



    static $proxy_t=0;
    for($i=0; $i<=count($buffer); $i++) /*в массиве $buffer лежат адреса страниц, на которіе скрипт должен зайти*/
    {
    $new_t=time();
    if($new_t-$time_parse>1000) //в $time_parse сохранено, когда скрипт запустился
    {
    parse(); //функция парсинга прокси
    }
    $proxy=$ip_and_port[$proxy_t]; //в $ip_and_port прокси

    $ch=curl_init();
    curl_setopt($ch, CURLOPT_URL, trim($buffer[$i]));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');
    $data_buffer=curl_exec($ch);
    curl_close($ch);

    if(preg_match_all('#<div\sid=\'header\'>#ims', $data_buffer, $arr)==0)
    {
    $proxy_t++;
    $proxy=$ip_and_port[$proxy_t];
    $ch=curl_init();
    curl_setopt($ch, CURLOPT_URL, trim($buffer[$i]));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');
    $data_buffer=curl_exec($ch);
    curl_close($ch);
    }
    }
    }


    В переменной $data_buffer сам хтмл - код страниц сайта. Проблема в том, что скрипт заходит не на все страницы, т.е. если в $buffer 100 урлов, скрипт зайдет на 79. Что я сделал не правильно? Подскажите, пожалуйста.
    Спасибо
  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 22 июня 2012 г. 15:21, спустя 23 часа 12 минут 14 секунд

    видимо в прокси. вы уверены, что все прокси рабочие и все получают нужную страницу?

Пожалуйста, авторизуйтесь, чтобы написать комментарий!