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

Статус
В этой теме нельзя размещать новые ответы.

BlackvsEvgen

Постоялец
Регистрация
13 Янв 2009
Сообщения
103
Реакции
3
Добрый вечер. Пишу парсер контента, а в пхп еще слабо понимаю. Написал вот такое :
PHP:
<? 
$grab=file_get_contents("http://sait.ru/article379/"); 
if ($grab) { 
  $pos = strpos($grab, "<p>"); // Ищет первую строку с этим тэгом
  $grab = substr($grab, $pos); // Обрезает до неё все
  $grab = substr($grab, 0, strpos($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 статей, как можно их спарсить и каждую статью записать в отдельный тхт файл ? Я понимаю что все адреса нужно загнать в массив и потом его прогонять по скрипту, но не могу реализовать такое :). Кто разбираетса, помогите плиз.
 
Для начала весь код получения страницы загони в функцию.. Вот так:
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($grab, 0, strpos($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];
 
ТС, напиши урл страницы и что хочешь спарсить в личку. Код чуток необходимо оптимизировать.
 
EnGeLs спасибо, буду с функциями разбираться.
 
ТС, немного не в тему но если слабо знаешь PHP и не приходилось работать с функциями может взять задачу попроще чем написание парсера-граббера? Так быстрее разберешься в самом PHP
 
drawing4 :) я не учу PHP , просто необходимость сейчас в парсере, вот и пытаюсь что-то на кодить )
 
Если вы не особо увлекаетесь ПХП - может стоит купить готовый парсер? Ваших знаний сполна хватит чтобы в нем разобраться и модернизировать под себя.

 
Если вы не особо увлекаетесь ПХП - может стоит купить готовый парсер? Ваших знаний сполна хватит чтобы в нем разобраться и модернизировать под себя.
*** скрытое содержание ***
Да только цена 190 бачей...)
 
Да на форуме есть парсеры, правда какой выбрать незнаю роблемы со многими в установке. То ошибки, то ещё что.
Кто моджет посоветовать рабочий парсер контента?
Да, может у тебя ТС получится оный написать, буду очень благодарен, ибо задолбался по форуму искать...
 
Hilo тот парсер что я писал в начале работает, только под разные сайты надо руками писать откуда ненужные html код обрезать, плюс я хотел сделать чтобы: забил допустим ссылки страниц и скрипт парсит с них контент и сохранял в txt файл, но я забил на это, времени не было разбираться.

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