Парсинг стал особенно популярен в последнее время, но его идея появилась и используется уже давно. Обработка больших объемов данных, при которых источник не является формализованным, а алгоритм - строго фиксированным, актуальная и популярная задача.
Что такое парсинг? Понятие привычно ассоциируется с Интернетом, но автоматизация процессов обработки информации уходит корнями в локальное программирование. Распределенная обработка информации была бы не так эффективна, если бы ей не предшествовал длительный период теории и практики анализа текстов.
Общее представление о парсинге
Программа для парсинга может быть выполнена на любом языке программирования. В качестве источника данных выступает:
- Интернет;
- конкретный перечень веб-ресурсов;
- шлюз в локальную сеть;
- база данных;
- сканированный материал и другое.
Одним из хороших инструментов для решения задач парсинга является серверное программирование на языке PHP, XML, CSS, HTML, и другие подобные форматы представления данных являются наиболее востребованными и частыми их источниками.
Результат парсинга, например:
- динамика валютного рынка;
- котировки на бирже;
- климатические данные;
- обновления программного обеспечения;
- новости и события в мире и прочее.
Сфера применения определяет и наполняет конкретным смыслом понятие, позволяет понять, что такое парсинг.
Влияние области задачи на алгоритм парсинга
Работа информационных систем в области биржевой торговли существенно отличается от работы системы складского учета. В первом случае есть строго конкретный, редко изменяемый спектр ресурсов и фиксированный алгоритм получения нужных данных. Во втором случае требуется распознавание образов, преобразование графической информации в текстовую.
Очевидно, что такое парсинг в этих двух случаях. Он существенно отличается:
- по пониманию исходного данного;
- по алгоритму его обработки.
Сбор информации о климате не может ориентироваться на строго определенный спектр источников. В данной предметной области меняется не только количество вариантов получения исходной информации, но и вероятное изменение логики парсинга.
Многие финансовые сайты или географические ресурсы (климат, погода, прогнозы) предлагают посетителям не свои страницы, а возможность скачать уточненный объем информации. Возникает задача - сделать парсинг файла. При этом часто недостаточно взять новые строчки, которых не было в предыдущих загрузках.
Часто загружаемый вновь файл содержит изменения по всему своему содержимому. При написании эффективных программ парсинга не следует исключать этот момент даже в случаях, когда область применения представляется статичной.
Анализ логики парсинга
В большинстве случаев, что такое парсинг, определяет программист. На это может также влиять заказчик. Часто идеи и алгоритмы разработчика, особенно на уровне компании - это серьезное ноу-хау и коммерческая тайна автора.
Наблюдая работу поисковых систем, которые в свое время парсили просторы Интернета, собирая информацию; которые постоянно уточняют собранное, желая поддерживать свой информационный арсенал на современном и актуализированном уровне, понимаешь, что всегда есть соответствие:
- исходный (ключевой запрос);
- поисковая выдача (ответ на запрос).
Это классическая формула парсинга, под которой лежит уникальный фундамент. Алгоритм парсинга разгадать сложно, но анализируя совокупности ключевых слов и сопоставляя результаты поисковых выдач, можно определить целесообразное применение тех или иных инструментов.
Основной критерий любого информационного процесса: соответствие поставленной задачи полученному решению. Хорошее дополнение к решению - его актуальность. Далеко не каждый веб-ресурс сообщает на своих страницах дату обновления информации, но если сопоставлять предыдущие результаты парсинга с текущими, то можно делать выводы, насколько обновляем этот ресурс.
Динамика границ парсинга
Что такое парсинг - вполне понятно, когда есть цель собрать нужную информацию. Есть критерии, есть спектр источников данных и цель. Могут быть и другие уточнения условий задачи и представлений о желаемом решении.
Если используется PHP на XML, CSS, HTML, то нет проблем. Эти языки описания данных строго формальны и при правильном применении регулярных выражений позволяют иметь достоверный результат.
Если создатель ресурса, который парсится, меняет структуру страницы, добавляет описания или новые теги, то искомая информация уже не подпадает под написанное регулярное выражение, а результат будет включать в себя неточную выборку.
Можно расширить границы парсинга, чтобы захватывать больший объем информации, а потом уточнять полученное, или сузить границы поиска и получать минимум информации. В первом случае приходится идти на дополнительные затраты по фильтрации полученной выборки, во втором случае легко упустить что-то важное.
Лучшим решением будет формализация целевой информации не только в части ее ожидаемого содержания и тегового окружения, а в контексте первого и динамике второго. Накапливая опыт тегового окружения требуемого контента, можно с достаточно большой долей достоверности определить границы положения искомого, не иметь большую выборку лишнего и не потерять существенного.