Введение¶
Что такое парсинг¶
Парсинг - это извлечение необходимых данных и сохранения их в удобном виде для последующего использования - поиска и анализа.
XML - это формат хранения и представления данных, который очень широко используется в самых различных областях:
- любые сайты Интернет (в том числе и этот) показывают Вам информацию, сохраненную в формате xml
- документы и электронные таблицы, с которыми Вы работаете на компьютере, электронные книги которые Вы читаете хранят данные в формате xml,
- архивные статистическое данные госзакупок, биржевых котировок, научных исследований активно используют xml для хранения
Ознакомиться со списком примеров полезных и интересных данных, хранящихся в формате xml можно здесь.
Зачем нужен парсинг данных?¶
Данные в формате xml удобно хранить, но не удобно регулярно использовать, т.е. регулярно выполнять поиск по коллекции данных, их преобразование и анализ. Для этого, необходимые данные извлекаются из xml формата (парсятся) и сохраняются в более удобной форме, например, в базе данных.
Алгоритм парсинга источников xml¶
Многообразие сфер применения и востребованность формата xml обуславливают не прекращающуюся разработку новых и улучшение существующих программ-парсеров - коммерческих и бесплатных, универсальных и созданных под конкретный тип данных.
Независимо от того, какую программу-парсер Вы используете общий алгоритм парсинга формата xml одинаков:
- анализируется структура источника xml в котором находятся нужные данные: определяются пути доступа к данным - в каких узлах или атрибутах они хранятся, и их структура - данные являются неделимыми (атомарными) или составными, к какому типу они принадлежат- строковому, логическому, числовому,... Этот этап выполняется программой-парсером в полуавтоматическом режиме. От набора инструментов, предлагаемых программой-парсером и удобства работы с ними зависят время, которое Вы затратите на анализ структуры xml и качество извлекаемых программой-парсером данных - их полноту и точность.
- непосредственно извлечение данных и их сохранение в формате, удобном для последующего поиска, трансформации и анализа.Возможно, таким форматом будет база данных, а возможно - таблица Exel или что нибудь еще.
Требования к программе-парсеру¶
Практика работы с источниками данных xml помогла сформировать ряд практических требований которым должна удовлетворять программа-парсер
- программа должна уметь извлекать данные из различных типов источников xml - как архивных файлов на компьютере, так и расположенных в сети: страниц сайтов, новостных лент, результатов API запросов и т.д..
- программа должна уметь извлекать данные из файлов большого размера. Многие полезные наборы данных хранятся в файлах размером несколько гигабайт.
- программа должна иметь удобные инструменты для анализа xml источников с неизвестной структурой. Эти инструменты должны предоставлять информацию как в графическом так и консольном вариантах.
- Настройка программы для извлечения данных должна быть максимально простой и не требовать от пользователя углубленных знаний структуры xml формата. Т.е., для того, чтобы извлечь данные, Вам не нужно, например, знать, что такое xpath и как его применять.
- программа должна работать на компьютерах с различными операционными системами (windiws, *nix), быть нетребовательной к ресурсам системы (работать даже на маломощных компьютерах) и поддерживать как локальное так и удаленное управление
- Программа должна предоставлять инструменты для сохранения извлеченных данных во все востребованные форматы.
К сожалению к моменту написания документации, программы-парсера, удовлетворяющей перечисленным требованиям мы не нашли, поэтому написали свою.
Итак, представляем инструмент парсинга xml и html - xmlPyParser