Помогите с парсером контента

Тема в разделе "PHP", создана пользователем BlackvsEvgen, 5 фев 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. BlackvsEvgen

    BlackvsEvgen Постоялец

    Регистр.:
    13 янв 2009
    Сообщения:
    104
    Симпатии:
    3
    Добрый вечер. Пишу парсер контента, а в пхп еще слабо понимаю. Написал вот такое :
    PHP:
    <? 
    $grab=file_get_contents("http://sait.ru/article379/"); 
    if (
    $grab) { 
      
    $pos strpos($grab"<p>"); // Ищет первую строку с этим тэгом
      
    $grab substr($grab$pos); // Обрезает до неё все
      
    $grab substr($grab0strpos($grab"<h2>Поиск по сайту</h2>"));  
      echo 
    $grab// Вывод Обрезанную страницу
      
    $file fopen("content.txt","a+"); // Открываем файл
      
    flock($file,LOCK_EX);
      
    $count fread($file,100);
      
    $count =  strip_tags($grab); // Убираем все тэги со страницы
      
    ftruncate($file,0);
      
    fwrite($file,$count); //Записываем текст в файл
      
    flock($file,LOCK_UN);
      
    fclose($file);   
      } 
    else { echo 
    "Connection Error"; } ?>
    Все работате и грабитса, но возникла такая ситуация что на сайте допустим 100 статей, как можно их спарсить и каждую статью записать в отдельный тхт файл ? Я понимаю что все адреса нужно загнать в массив и потом его прогонять по скрипту, но не могу реализовать такое :). Кто разбираетса, помогите плиз.
     
  2. EnGeLs

    EnGeLs Постоялец

    Регистр.:
    30 апр 2008
    Сообщения:
    87
    Симпатии:
    21
    Для начала весь код получения страницы загони в функцию.. Вот так:
    PHP:
    <? 
    $files[]="content.txt";
    $urls[]="http://sait.ru/article379/";

    foreach(
    $urls as $key=>$url){
    grab_page($url,$files[$key]);
    }


    function 
    grab_page($url,$file){ 
    $grab=file_get_contents($url);  
    if (
    $grab) {  
      
    $pos strpos($grab"<p>"); // Ищет первую строку с этим тэгом 
      
    $grab substr($grab$pos); // Обрезает до неё все 
      
    $grab substr($grab0strpos($grab"<h2>Поиск по сайту</h2>"));   
      echo 
    $grab// Вывод Обрезанную страницу 
      
    $file fopen($file,"a+"); // Открываем файл 
      
    flock($file,LOCK_EX); 
      
    $count fread($file,100); 
      
    $count =  strip_tags($grab); // Убираем все тэги со страницы 
      
    ftruncate($file,0); 
      
    fwrite($file,$count); //Записываем текст в файл 
      
    flock($file,LOCK_UN); 
      
    fclose($file);    
      }  
    else { echo 
    "Connection Error to ".$url; } 
    }
    ?>
    А массив $urls можешь заполнить либо вручную, либо с помощью регулярных выражений. Например
    PHP:
        $pattern='/<a.*href=["\']?([^\"\'<>]+)["\']?/i';
        
    preg_match_all($pattern,$grab,$matches);
        
    $urls $matches[1];
     
  3. sw04

    sw04 seoplayer

    Регистр.:
    1 дек 2007
    Сообщения:
    601
    Симпатии:
    193
    ТС, напиши урл страницы и что хочешь спарсить в личку. Код чуток необходимо оптимизировать.
     
  4. BlackvsEvgen

    BlackvsEvgen Постоялец

    Регистр.:
    13 янв 2009
    Сообщения:
    104
    Симпатии:
    3
    EnGeLs спасибо, буду с функциями разбираться.
     
  5. drawing4

    drawing4

    Регистр.:
    21 ноя 2008
    Сообщения:
    323
    Симпатии:
    37
    ТС, немного не в тему но если слабо знаешь PHP и не приходилось работать с функциями может взять задачу попроще чем написание парсера-граббера? Так быстрее разберешься в самом PHP
     
  6. BlackvsEvgen

    BlackvsEvgen Постоялец

    Регистр.:
    13 янв 2009
    Сообщения:
    104
    Симпатии:
    3
    drawing4 :) я не учу PHP , просто необходимость сейчас в парсере, вот и пытаюсь что-то на кодить )
     
  7. pierrevk

    pierrevk Постоялец

    Регистр.:
    22 сен 2009
    Сообщения:
    59
    Симпатии:
    5
    Если вы не особо увлекаетесь ПХП - может стоит купить готовый парсер? Ваших знаний сполна хватит чтобы в нем разобраться и модернизировать под себя.

    http://ai-parser.narod.ru/index.html
     
  8. cocs

    cocs

    Регистр.:
    5 дек 2009
    Сообщения:
    432
    Симпатии:
    100
    Да только цена 190 бачей...)
     
  9. Hilo

    Hilo

    Moderator
    Регистр.:
    31 мар 2008
    Сообщения:
    911
    Симпатии:
    568
    Да на форуме есть парсеры, правда какой выбрать незнаю роблемы со многими в установке. То ошибки, то ещё что.
    Кто моджет посоветовать рабочий парсер контента?
    Да, может у тебя ТС получится оный написать, буду очень благодарен, ибо задолбался по форуму искать...
     
  10. BlackvsEvgen

    BlackvsEvgen Постоялец

    Регистр.:
    13 янв 2009
    Сообщения:
    104
    Симпатии:
    3
    Hilo тот парсер что я писал в начале работает, только под разные сайты надо руками писать откуда ненужные html код обрезать, плюс я хотел сделать чтобы: забил допустим ссылки страниц и скрипт парсит с них контент и сохранял в txt файл, но я забил на это, времени не было разбираться.

    PS : Кто может это реализовать бесплатно или дать исходник кода с подобной функцией как сохранение в разные txt - файлы. Буду благодарен :)
     
Статус темы:
Закрыта.