Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
введение проекта.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
751 Кб
Скачать

Выбор технологии парсера

В качестве инструмента программирования парсера выступает скриптовый язык PHP. PHP (англ. Hypertext Preprocessor – препроцессор гипертекста) – это широко используемый язык сценариев общего назначения с открытым исходным кодом. Этот язык был специально разработан для написания web-приложений (сценариев), исполняющихся на Web-сервере [3].

Использование языка программирования РНР обусловлен следующими характеристиками:

  • простотой;

  • эффективностью;

  • безопасностью;

  • гибкостью.

Также PHP обладает довольно широким набором методов парсинга.

Парсинг (англ. parsing) – это автоматизированный сбор всего содержимого или конкретных данных с какого-либо сайта или сервиса. Скрипт или программа, занимающаяся, непосредственно, сбором, анализом и преобразованием требуемой информации называется парсером [8].

Любой парсер состоит из трех частей, которые отвечают за три отдельных процесса:

  1. Получение информации в исходном виде;

  2. Извлечение и преобразование данных;

  3. Генерация результата.

Основными инструментами парсинга, которые предлагает PHP являются:

  • объектная модель Документа (DOM);

  • интерфейс Simple API for XML (SAX);

  • парсер SimpleXML;

  • парсер XPath;

  • регулярные выражения (regular expressions).

Базовыми понятиями при работе с текстом источника обрабатываемой информации являются XML и HTML.

HTML (англ. Hypertext Markup Language – язык разметки гипертекста) – это стандартный язык разметки документов во Всемирной паутине.

XML (англ. eXtensible Markup Language – расширяемый язык разметки) – рекомендованный Консорциумом Всемирной паутины язык разметки, фактически представляющий собой свод общих  синтаксических  правил. XML – текстовый формат, предназначенный для хранения структурированных данных, для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML) [2].

Наиболее общей задачей обработки XML является именно разбор XML-документа, т.е. парсинг. Он включает в себя чтение XML-документа для определения его структуры и содержимого [9].

При разработке программы Парсера расписания была выбрана ориентация на один формат HTML по следующим причинам:

  • текст в формате HTML, в отличие от XML, может содержать незакрытые теги, как, например, широко используемый тег переноса строки <br> в HTML;

  • в XML значения атрибутов обязательно должны быть заключены в кавычки, а HTML допускает возможность использования атрибутов без кавычек;

  • помимо этого, HTML является старейшим форматом текста в web-пространстве и также поддерживается абсолютно всеми браузерами.

Вывод: данный формат является более универсальным и независимым форматом текстовых данных, к тому же текст любого другого формата легко преобразовать в формат HTML.

Большинство из выше указанных парсеров предназначены для работы именно с XML. Среди их прочих неудобств для данного программного обеспечения можно отметить следующие:

  • DOM строит в памяти дерево XML-документа, следовательно, если документ действительно большой, дерево DOM может требовать большого объема памяти;

  • дерево DOM содержит множество объектов, представляющих содержимое исходного XML-документа, следовательно, если требуется лишь часть документа, создание этих объектов вызывает необоснованное усложнение кода;

  • парсер DOM должен построить полное дерево DOM прежде, чем код сможет работать с ним, следовательно, при разборе большого XML-документа, можно получить значительную задержку, ожидая, пока парсер закончит работу;

  • парсер SAX разработан с меньшими требованиями к объему памяти, но он перекладывает больше работы на программиста;

  • события SAX не сохраняют состояние, т.е. нельзя посмотреть на отдельное событие SAX и вычислить его содержимое;

  • парсеры SimpleXML и XPath значительно облегчает работу с XML-файлами по сравнению с DOM и SAX, но в нашем случае они не подходит, так как требуют наличия определенных тегов в структуре текста.

Регулярные выражения – это специальный язык для работы с текстом. Причём подчас одна строчка с их использованием может заменить несколько страниц обычного кода. С помощью регулярных выражений можно эффективно искать фрагменты текста любой сложности, заменять одни вхождения на другие.

Основа регулярного выражения – шаблон. С его помощью мы описываем формат нужного нам фрагмента текста, а затем либо проверяем, подходит ли текст под шаблон, либо вырезаем одно или несколько вхождений шаблона, либо заменяем на какой-либо текст [7].

Регулярные выражения являются более простым методом, предлагаемым языком PHP, для достижения поставленных нами целей по сравнению с XML-парсерами. Регулярные выражения характеризуются отсутствием необходимости использования усложненных инструментов, занимающихся разборкой структуры текста или основанных на большом количестве внутренних методов, и большей эффективностью, чем поэтапный разбор и выборка текстовых фрагментов посредством других функций работы с символами.