За последние 24 часа нас посетили 19972 программиста и 1655 роботов. Сейчас ищут 1134 программиста ...

Парсинг сайта

Тема в разделе "Прочие вопросы по PHP", создана пользователем Romanov, 23 апр 2012.

  1. Romanov

    Romanov Активный пользователь

    С нами с:
    11 авг 2011
    Сообщения:
    2
    Симпатии:
    0
    Всем доброго времени суток
    Занимаюсь парсингом сайта, при рекурсивном вызове функции parsing_page браузер грузится, пока его не остановишь, помогите пожалуйста разобраться с проблемой вот код:
    Код (Text):
    1.  
    2.  
    3. require_once ("simple_html_dom.php");
    4.  
    5. // Вызов функции для парсинга ссылок главной сраницы каталога
    6.  parsing_page('http://www.merlion.ru/goods/catalog/cat/');
    7.  
    8.  
    9. function parsing_page($url)
    10.  
    11. {
    12.    
    13.         // Анализируем страницы для выбора способа парсинга
    14.     $path_url = parse_url($url);
    15.  
    16.  
    17.     // Рег.выражение для главной страницы $path_url["path"] == /goods/catalog/cat/
    18.     preg_match('#(/goods/catalog/cat/)#i',         $path_url['path'], $pathmain);
    19.  
    20.     preg_match('#(/goods/catalog/cat/\w+/\w+/)#i', $path_url['path'], $pathcat);
    21.     #preg_match('#(/goods/catalog/product/\d+/)#i', $path_url['path'], $pathdetail);
    22.  
    23.     $merl = file_get_html($url);
    24.  
    25.     switch( $path_url['path'] ):
    26.    
    27.        
    28.          case $pathmain[0] :
    29.  
    30.     foreach ($merl->find('div[class="catalog_link"]') as $main_container):
    31.  
    32.         $h3 = $main_container->find("h3");
    33.         #echo $h3[0];
    34.         foreach ($main_container->find('ul[class="catalog_list"] li ul') as $ul):
    35.             foreach($ul->find('a') as $li):
    36.                
    37.                 parsing_page("http://www.merlion.ru".$li->href);   
    38.                      
    39.            
    40.             endforeach;
    41.            
    42.         endforeach;
    43.    
    44.     endforeach;
    45.     break;
    46.    
    47.     case $pathcat[0]:
    48.        
    49.        
    50.         echo "KO<br>";
    51.        
    52.        
    53.     break; 
    54.    
    55.    
    56. endswitch;
    57.  
    58. }
     
  2. MaXyC_Web_Studio

    MaXyC_Web_Studio Активный пользователь

    С нами с:
    31 дек 2006
    Сообщения:
    678
    Симпатии:
    3
    Адрес:
    Новоуральск