← Главная
Парсинг данных
Парсинг данных (parsing) - это автоматизированный сбор контента или данных с какого-либо сайта или сервиса. Для парсинга используется программа, которая может быть как универсальной программой для парсинга (например, Content Downloader X1 или DataCol), так и скриптом на сервере.
Обычно, я обхожусь серверным решением, так как, в большинстве случаев, так проще описать логику сбора данных с сайтов со сложной структурой и можно гибче реагировать на непредвиденные ответы сервера.
Результатом работы парсера является файл (или набор файлов), таблица (CSV,XLS), база данных (СУБД MySQL) XML или иной удобный заказчику формат.
Парсинг — это, по сути, преобразование данных из неудобоваримого формата в формат удобоваримый. Под "неудобоваримым форматом" также можно подразумевать каталоги, элементы которого размещены на нескольких тысячах страницах. С помощью парсинга можно, например, запросто собрать на одном листе Excell список объектов и их характеристики даже если каждый объект находится на отдельной странице сайта, а всего таких объектов несколько тысяч.
Этапы парсинга
Любой процесс парсинга состоит из трех отдельных этапов:
- Получение контента в исходном виде. Под получением контента, чаще всего подразумевается скачивание веб-страницы, из которой необходимо извлечь данные или контент.
- Извлечение и преобразование данных. На этом этапе происходит извлечение требуемых данных из полученного на первом этапе кода страницы с помощью алгоритмов синтаксического разбора XML-документов, поиска с помощью регулярных выражений или иными доступными способами. Извлеченные на этом этапе данные обычно складируются в удобном для последующей обработки виде. Часто в одном процессе совмещается первый и второй этап парсинга, так как проанализированная страница может содержать информацию необходимую для продолжения процесса получения контента (например, пополнение новыми ссылками на страницы сайта).
- Генерация результата. Завершающий этап парсинга. На этом этапе происходит обработка данных полученных на втором этапе сохранение их в требуемом заказчику формате.
Зачем и кому нужен парсинг
Наиболее распространенные ситуации в которых можно автоматизировать процесс и сэкономить огромное количество времени и денег:
- Вы - владелец интернет-магазина и перепродаете товар вашего поставщика. У поставщика несколько тысяч позиций товара которые размещены на его сайте или в прайс-листе. Если товар размещен на сайте поставщика, то описание каждого товара может находится на отдельной странице. Вам необходимо перенести эти товары на свой сайт, но ручное размещение товарных позиций может занять от нескольких дней до нескольких недель.
- Вы, всё также, владелец интернет-магазина и ваш поставщик ежедневно/еженедельно/ежемесячно меняет цену на свой товар. Вам необходимо найти изменившиеся позиции и скорректировать цену на своем сайте с учетом своей наценки. Самостоятельный мониторинг изменений в прайсе даже на несколько десятков позиций - это весьма трудоемкое занятие.
- Вам необходимо прорекламировать вашу услугу и вы уже нашли сайт на котором можно найти потенциальных клиентов. Осталось только собрать их контакты. Без автоматизации здесь точно не обойтись!
- У вас есть доступ к крупной информационной системе (ИС), но интерфейс системы таков, что не позволяет удобно мониторить произошедшие изменения. Вам необходимо найти те записи в ИС, которые были добавлены за день, удалены или изменились и показать какие записи добавились, какие стали неактеальны, а в каких произошли изменения и что это были за изменения (изменилась цена, добавили документ, заокнчились запасы на складе).
- Необходимо на сайте или в иной информационной системе использовать какой-либо справочник (например, ОКПД2). Этот справочник должен быть загружен в базу данных, но у первоисточника (например, в законодательном акте) он представлен в очень неудобном для импорта формате (загляните в любой закон определяющий справочники). Альтернативного удобного варианта в открытом доступе у источника нет и происк актуальных справочников не привел к успеху.
Примеры выполненных работ
AUTO.RU - Сбор информации о марках, моделях, модификациях и характеристиках
легковых, грузовых автомобилей и некоторых других видов транспорта, а также фотографий
к ним. Результатом парсинга этой информации стало создание сайтов занимающихся
продажей и демонстрацией полученных данных:
http://big-car-base.ru,
http://auto-base-buy.ru,
http://spravochniki.info,
http://bases.boenskov.ru
Объем (по легковым авто): 211 брендов, 2.3тыс марок, 6.1тыс версий и поколений, 41тыс модификаций, 1.5 млн характиристик по 57 параметрам. |
|
baby.ru - Одна из крупнейших и сложнейших задач: собрать с сайта информацию о
пользователях, их комментариях, записях на форуме и на стенах, их закладках и многих
других параметров.
Общий объем: 11 млн записей!!! (3 Гб данных) |
|
tendercat.ru - крупный личный онлайн-проект (сайчас, надеюсь, временно, находится в стадии анабиоза). Проект занимался сбором информации о текущих государственных заказах с сайта госзакупок РФ zakupki.gov.ru. Информация по лотам загружалась из двух источников которые дополняли друг-друга: со страниц основного сайта и с FTP-ресурса системы. Ежеминутно сервер обрабатывал громадные объемы данных. Клиентам сервиса предоставлялся доступ к более чем миллиону записей которые были результатом парсинга. Также клиенты получали удобный поиск и возможность обработки и учета найденных заказов. | |
menbazar.ru - Создан парсер прайс-листов в формате Excell для автоматического обновления ассортимента продукции и цен на основе прайса поставщика. | |
all-autoglass.ru - Сбор информации по ассортименту автомобильных стекол, а
также характеристик и применимости для конкретных автомобилей.
Объем: 27тыс записей. |
|
cian.ru - Сбор номеров мобильных телефонов продавцов недвижимости Москвы и
Московской области для осуществления рекламной СМС-рассылки.
Объем: 38тыс записей с разбивкой по региону (МСК, МО, МСК+МО) |
|
reformagkh.ru - Собрана информация об объектах ЖКХ (ДЭЗ, РЭУ, ЖЭК и пр.)
Объем: 53тыс записей |
|
tehintkom.ru - Собрана информация о запчастях и агрегатах для грузовых автомобилей
Объем: почти 20тыс записей |
|
zakupki.gov.ru - Собрана информация о компаниях заключавших договора по
госконтрактам по итогам торгов на сайте госзакупок
Объем: более 250тыс записей |
|
auto-legion.ru - Собрана информация параметрах автомобильных шин и дисков.
Собранную базу можно купить у меня.
Объем: 4700 записей |
|
zismo.biz - Создание карты сайта-форума (sitemap.xml). Потребовалось использование
прокси для обхода блокировки которую выставлял сайт при попытке
массивного доступа с одного IP адреса.
Объем: около 800тыс уникальных URL |