Xwab
Форумыnavigate_nextОбщие вопросы

Парсер
Сообщения
Demonis

Привет всем, меня интересует принцем работы парсера. Может ли он полностью перекачать сайт или же отдельный раздел? С ними не имел делов, кто знает расскажите пожалуйста всё о нём че он умеет , а что нет. Спасибо .

05 Май 2011, 19:08
TOOZ

Да,может.На сколько я пробовал сам такое делать,то знаю что удобно использовать regular expression(регулярные выражения).Тоесть к примеру есть текст erwekrw,pvnfdre[e]ewr и надо достать то,что находится в скобках [].
~
Да и самому эта тема будет интересна.

05 Май 2011, 19:11
MoD

<?php
  //Настройки парсера
  //URL для парсинга контента
  $url = 'http://www.cy-pr.com/news/2583/';
  //Стартовый тег для парсинга контента
  //тег который стоит перед началом нужного участка кода для парсинга
  //и используется 1 раз
  $start = '<div class="l-content">';
//Конечный тег участка кода для парсинга
  //Тег который стоит после нужного участка который будем парсить
  $finish = '<br class="clear"/>';
  //Создаём функцию парсера
  function parser($url,$start,$finish) {
  //Получаем весь код страницы
  $content = file_get_contents($url);
  //Ищем позицию с которой мы будем вырезать код для дальнейшего использования
  $position = strpos($content, $start);
  //Вырезаем нужный блок
  $content = substr($content, $position);
  $position = strpos($content, $finish);
  //Вырезаем код
  $content = substr($content, 0, $position);
  //Вырезаем HTML теги
  //Для добавления\удаления используемых тегов допишите\удалите теги
  $content = strip_tags($content, '<p><a>');
  //Debug (Проверка того, что выводит парсер)
  //echo nl2br($content);
  //Открываем файл для чтения и перезаписи
  $fp = fopen('article.txt', 'write');
  //Записываем код в файл
  fwrite($fp, nl2br($content));
  //Закрываем файл
  fclose($fp);
  //Возвращаем напарсеный контент
  return $content;
  }
 //Вызываем функцию парсинга
  parser($url, $start, $finish);
  ?>

05 Май 2011, 19:56
Qutim

3. Везде работает?

05 Май 2011, 20:04
MoD

должно

05 Май 2011, 20:09
fanatoss

не везде

05 Май 2011, 20:10
MoD

не проверял

05 Май 2011, 21:15
Demonis

MoD, Спасибо.

05 Май 2011, 22:45
Злой Одиночка

MoD, не substr(), а mb_substr() надо юзать, т.к. первая некорректно с кириллицей работает

26 Май 2011, 12:23
xman12

принцып тут не сложный, смотря что получить надо , если же требуется текст получить то тупо использование регулярных выражений, если же нужен контент регулярные выражение + копирование данных, писать их не сложно зная хорошо регулярки,

26 Май 2011, 12:47
Ответить на тему