Как сделать парсер?

3 ноября 2014 г. Просмотров: 774
Парсинг является одним из широко используемых приемов при программировании веб страниц. Он легко и просто позволяет получить необходимый сервис на сайт при помощи небольшого количества команд, когда нет возможности самостоятельно написать необходимый скрипт.

Инструкция

  • Проще всего осуществить парсинг при помощи PHP функции file_get_contents(). Она позволяет получить содержимое файла в виде текстовой строки . Функция использует алгоритм «memory mapping», что улучшает ее производительность.
  • Например, чтобы написать скрипт, который парсит данные с сайта ЦБ РФ, необходимо получить при помощи соответствующей функции содержимое XML-страницы, предварительно определив дату в соответствующем для сайта формате, после чего при помощи регулярных выражений разбить ее. Для отображения выбранной валюты используется код, полученный с сайта Банка:$data = date(“d/m/Y”);$get = file_get_contents(http://www.cbr.ru/scripts/XML_daily.asp?date_req=$data);preg_match(“/(.*?)/is”, $get, $string);preg_match(“/(.*?)/is”, $string[1], $str);
  • Если требуется парсить непосредственно сам файл XML, то для этого существуют также соответствующие функции. Для начала парсера необходимо его инициализировать при помощи xml_parser_create:$parser = xml_parser_create();
  • Затем указывается перечень функций, которые будут обрабатывать соответствующие теги и текстовую информацию. Устанавливаются соответствующие обработчики начала и конца элемента XML:xml_set_element_handler($parser, “startElement”, “endElement”);
  • Считывать данные можно при помощи стандартной функции fopen() и fgets() в рамках соответствующего цикла. Содержимое файлов отдается построчно в xml_parse(). В последнем параметре передается флаг считывания последней строки:while ($content = fgets($fparse)) {
  • if (!xml_parse($parser, $content, feof($fparse))) {

    echo “Error”;

    break; } }

  • Для освобождения занимаемых системой ресурсов используется функция xml_parser_free(). Эти функции являются самыми действенными при обработке XML файлов.
  • Оцените статью!