Веб-скрапинг

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

Веб-скрапинг—это автоматизированный сбор информации с сайтов и других источников: публичных API, файлов с данными и так далее. Скрапинг нужен везде и всегда.

Первый раз я столкнулся с этим в 2010, когда мы были совладельцами маленькой сети зоомагазинов и нужно было искать персонал. Для этого меня попросили сделать сбор или парсинг резюме продавцов. Я тогда еще не умел хорошо искать существующие решения, поэтому не придумал ничего лучше нежели написать Swing-приложение куда оператор бы копипастил текст из сайта, который потом разбирался на запчасти и ложился в MS Access базу. Почему-то я не догадался написать или поискать полноценный краулер. Система естественно была неудобной и не работала, проект забросил.

Несколько лет спустя я пошел работать в proptech-стартап. Там скрапинг объявлений о продаже недвижимости необходимо было делать в промышленных масштабах. Этим занимались наши дата-саентисты (привет Игорь и Игорёк), благодаря которым я изучил инструменты и подходы к скрапингу. Чуть позже один из моих клиентов пришел с большим проектом—аналитика цен в торговых сетях. Там я уже сам с нуля строил скрапинговую инфраструктуру и пайплайны обработки.

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

Например, для adopt.com.ua нам нужно было собрать список ветклиник. Для этого я за 10 минут написал простой скрапер, который ходил по сайту-каталогу и собирал данные.

Для своей читалки телеграм каналов я написал скрапер веб-версии телеграма.

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

Ну и самое главное—как только источник поменял дизайн то все падает и надо начинать работу заново. Постоянное противоборство утомляет и надоедает. Скрапинг это не творческая работа, это методичное ремесленничество, поэтому честно говоря я его терпеть не могу.

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


Сподобалось? Долучайтеся до мого телеграм каналу: https://t.me/full_of_hatred