Сбор и обработка данных - парсинг

18.03.2016 2114
Количество просмотров
#Разработка

После серии наших статей о big data и сборе данных (ссылки - Анализ рынка недвижимости, Прогноз зарплаты по описанию вакансии), мы получили кучу заявок на новые проекты по парсингу. Клиенты хотят собирать всё и вся - от данных по посещенным страницам и каталогам конкурентов, до сведений о выгуле собак (было предложение разработать приложение, связанное с таким событием).

Мы столкнулись с рядом однотипных вопросов и решили подготовить мини-ликбез по тематике сбора и обработки данных - парсингу.

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

Под парсингом мы подразумеваем сбор определенной информации в интернете в целом, или с конкретного ресурса - базы данных, веб-сайта, файла. С ресурсов можно собирать и все подряд, но как правило зада состоит в том, чтобы собрать что-то конкретное. Например, в задаче по анализу объявлений о продаже автомобилей мы собирали с Авито, Автору, Дром, и т. д. свойства автомобилей и их цену. При создании сервиса по недвижимости, мы собирали объявления по продаже квартир. В данной статье мы будем говорить о сборе данных с веб-сайтов.

2. Как происходит сбор данных? Настройка параметров парсера.

Программисты создают роботов, которые обходят заданные ресурсы (веб-сайты), просматривают все их страницы и собирают все данные, которые отвечают заданным параметрам, в подготовленную базу данных. Как правило, хоть информация везде может быть одной и той же (в примере с автомобилем, объем двигателя, пробег и т. п. для объявления на Авито и Автору одинаковые), но предоставление ее на сайтах будет разным - даже в силу того, что каждый сайт имеет уникальное оформление - читай код html.

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

Если необходимо собирать данные часто и с некоторых ресурсов, для удобства создается панель управления парсером, в которой задаются правила сбора (предварительно разработанные), отображается журнал работы парсера, статистика, а также предпросмотр "сырых" собранных данных. Не лишним будет настроить уведомления о возникающих ошибках, сбоях самого парсера, изменении структуры информации на целевом ресурсе.

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

Сбор данных

3. Возможные проблемы.

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

 

4. Как происходит обработка собранных данных.

Собрать "сырую" информацию - это полдела. Информация должна собираться в базу в единых единицах измерения, в корректном написании, учитывать возможные опечатки и ошибки кодировки. Ее надо разложить по полочкам, отделить зерна от плевел, так сказать. Для этого программисты создают дополнительные обработчики данных. Они проверяют массив собранных данных, убирают лишние пробелы, исправляют базовые опечатки. Обработчики позволяют избежать ошибки при дальнейшем анализе данных, и их использовании.

 

5. Что необходимо предусмотреть?

При составлении ТЗ для создания парсера у вас должны быть ответы на следующие вопросы:

  • Какие конкретно данные вы бы хотели получить. Например, ссылка на объявление; характеристики-значение "Объем двигателя", "Пробег", "Тип КП", "Привод" и т. д.
  • С каких ресурсов будет идти сбор (веб-сайты);
  • Отдаются ли данные напрямую, нет ли блокировок по трафику/запросам, нет ли блоков на самих страницах;
  • Разработал ли программист правило сбора с ресурса;
  • Предусмотрено ли задание/изменение параметров сбора? Будет ли панель управления с журналом работы и статистикой работы парсера;
  • Как вы будете узнавать о проблемах и ошибках работы парсера;
  • Куда будут собираться данные, продумайте структуру и содержание базы данных;
  • Что делать если в данных будет много мусора и ошибок, какие параметры для оценки качества сбора, какие возможны опечатки и некорректные заполнения;
6. Вместо итога

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

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

Если у вас есть интересный проект или хотя бы идея - мы открыты!

Понравилось? Подпишись на обновления!

Мы страемся публиковать в данном разделе только полезный и уникальный контент для рынка. По этому подпишись и ты будешь первым, кто получит уведомление о свежей публикации
Нам будет приятно, если вы захотите подписаться на обновления наших проектов
Вы успешно подписались на уведомление об обновлениях.
Пожалуйста, укажите своё имя:
Нам очень приятно, что вы проявили интерес!