Введение

Что такое парсинг

Парсинг - это извлечение необходимых данных и сохранения их в удобном виде для последующего использования - поиска и анализа.

XML - это формат хранения и представления данных, который очень широко используется в самых различных областях:

  • любые сайты Интернет (в том числе и этот) показывают Вам информацию, сохраненную в формате xml
  • документы и электронные таблицы, с которыми Вы работаете на компьютере, электронные книги которые Вы читаете хранят данные в формате xml,
  • архивные статистическое данные госзакупок, биржевых котировок, научных исследований активно используют xml для хранения

Ознакомиться со списком примеров полезных и интересных данных, хранящихся в формате xml можно здесь.

Зачем нужен парсинг данных?

Данные в формате xml удобно хранить, но не удобно регулярно использовать, т.е. регулярно выполнять поиск по коллекции данных, их преобразование и анализ. Для этого, необходимые данные извлекаются из xml формата (парсятся) и сохраняются в более удобной форме, например, в базе данных.

Алгоритм парсинга источников xml

Многообразие сфер применения и востребованность формата xml обуславливают не прекращающуюся разработку новых и улучшение существующих программ-парсеров - коммерческих и бесплатных, универсальных и созданных под конкретный тип данных.

Независимо от того, какую программу-парсер Вы используете общий алгоритм парсинга формата xml одинаков:

  1. анализируется структура источника xml в котором находятся нужные данные: определяются пути доступа к данным - в каких узлах или атрибутах они хранятся, и их структура - данные являются неделимыми (атомарными) или составными, к какому типу они принадлежат- строковому, логическому, числовому,... Этот этап выполняется программой-парсером в полуавтоматическом режиме. От набора инструментов, предлагаемых программой-парсером и удобства работы с ними зависят время, которое Вы затратите на анализ структуры xml и качество извлекаемых программой-парсером данных - их полноту и точность.
  2. непосредственно извлечение данных и их сохранение в формате, удобном для последующего поиска, трансформации и анализа.Возможно, таким форматом будет база данных, а возможно - таблица Exel или что нибудь еще.

Требования к программе-парсеру

Практика работы с источниками данных xml помогла сформировать ряд практических требований которым должна удовлетворять программа-парсер

  1. программа должна уметь извлекать данные из различных типов источников xml - как архивных файлов на компьютере, так и расположенных в сети: страниц сайтов, новостных лент, результатов API запросов и т.д..
  2. программа должна уметь извлекать данные из файлов большого размера. Многие полезные наборы данных хранятся в файлах размером несколько гигабайт.
  3. программа должна иметь удобные инструменты для анализа xml источников с неизвестной структурой. Эти инструменты должны предоставлять информацию как в графическом так и консольном вариантах.
  4. Настройка программы для извлечения данных должна быть максимально простой и не требовать от пользователя углубленных знаний структуры xml формата. Т.е., для того, чтобы извлечь данные, Вам не нужно, например, знать, что такое xpath и как его применять.
  5. программа должна работать на компьютерах с различными операционными системами (windiws, *nix), быть нетребовательной к ресурсам системы (работать даже на маломощных компьютерах) и поддерживать как локальное так и удаленное управление
  6. Программа должна предоставлять инструменты для сохранения извлеченных данных во все востребованные форматы.

К сожалению к моменту написания документации, программы-парсера, удовлетворяющей перечисленным требованиям мы не нашли, поэтому написали свою.

Итак, представляем инструмент парсинга xml и html - xmlPyParser