Оптимизировать парсер

Печать RSS
58

Автор
[̲̅$̲̅(̲̅ιοο̲̅)̲̅$̲̅
0
Необходимо отпарсить очень много ссылок!Написал вот так
<?php
for($i=0;$i<count($link);$i++) {  
            // инициализируем обычный объект curl  
            
            $url=str_replace('href=',"",$link[$i]);
            $url=str_replace('class="catBigLink"',"",$url);
            $url=str_replace('"',"",$url);
            $url=str_replace('//',"",$url);
            $urlpars="http://www.site.ru".$url;
            //echo($urlpars."<br>");
            $handles[$i] = curl_init();  
    
            // устанавливаем настройки соединения  
            curl_setopt($handles[$i] , CURLOPT_URL, $urlpars);  
            curl_setopt($handles[$i] , CURLOPT_HEADER, 0);  
            curl_setopt($handles[$i] , CURLOPT_RETURNTRANSFER, true);  
            curl_setopt($handles[$i] , CURLOPT_TIMEOUT, 15);  
   
            // добавляем текущий объект curl в пул multi curl  
            curl_multi_add_handle($mh,$handles[$i]);  
   
        }  
   
        // выполняем запрос  
        $running=null;  
        do  
        {  
            curl_multi_exec($mh,$running);  
        } while ($running > 0);  
   
        // получаем контент со всех сайтов  
        for($i=0;$i<count($handles);$i++)  
        {  
            // получаем контент с определенного сайта  
            $result= curl_multi_getcontent($handles[$i]);
            preg_match_all('/href=.\/catalog.php.catID=[0-9]{1,4}..class="catBigLink"/is', $result, $temp);

            //print_r($temp);
            
            for($k=0;$k<count($temp1[0]);$k++)
            {
                $ssilk[count($ssilk)]=$temp1[0][$k];
                
            }
            // удаляем из пула текущий объект curl  
            curl_multi_remove_handle($mh,$handles[$i]); 
            if ($temp[0][0]!="") pars1($temp);                
        }  
        // освобождаем ресурсы  
        
        curl_multi_close($mh);
?>

Но данная конструкция очень долго работает!!!Как ее можно оптимизировать!Заранее спасибо

Добавлено через 05:11 сек.
По идеи В аттаче нормальный класс. sad
Изменил: ZipeR (22.11.2010 / 15:44)
А

Оранжевые штаны
0
А что там в аттаче?
Автор
[̲̅$̲̅(̲̅ιοο̲̅)̲̅$̲̅
0
multicurl
Автор
[̲̅$̲̅(̲̅ιοο̲̅)̲̅$̲̅
0
Вот класс
http://upwap.ru/1139511
Скопировал в формате,редактируйте на .class
Автор
[̲̅$̲̅(̲̅ιοο̲̅)̲̅$̲̅
0
5. ZiGR, код посмотри

Землянин
0
Долго, потому что два цикла...но это чисто я так думаю.
Автор
[̲̅$̲̅(̲̅ιοο̲̅)̲̅$̲̅
0
7. StingerIce, нет дело не в циклах,они не стыкуются вместе при работе на одной генерации

Дедушка
0
Возможно сайты неохотно и тяжело отдают тебе контент при запросе
Автор
[̲̅$̲̅(̲̅ιοο̲̅)̲̅$̲̅
0
9. Basters, нет нормальный пинг у них
А

Оранжевые штаны
0
Расставь microtime() узнаешь где тормозит.
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск