Конструкторы для парсинга цен и ассортимента конкурентов: что делать, если они не справляются?

Моя компания занимается парсингом сайтов в России уже более трёх лет, ежедневно мы парсим около 400 крупнейших сайтов в РФ. На выходе мы просто отдаем данные в формате Excel/CSV. Но существуют другие решения - визуальные конструкторы парсеров, правда есть и проблемы с ними...

В закладки

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

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

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

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

Визуальные конструкторы веб-сайтов

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

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

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

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

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

Небольшое сравнение наиболее популярных инструментов визуального парсинга

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

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

Эффективность при парсинге в больших масштабах

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

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

Повышение качества данных и проблемы надёжности

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

  • Гибкость — автоматизированный характер конструирования визуальных веб-парсеров ведет к тому, что созданные боты могут собирать данные с сайта чрезмерно специфическим образом. Это значит, что, если в структуре сайта произойдет малейшее изменение, то парсер может попросту сломаться. Для сравнения, опытные инженеры по созданию парсеров могут с самого начала разрабатывать своих ботов таким образом, чтобы они были более гибкими к изменениям веб-сайта и т.д., что делает их гораздо более надежными.
  • Ограниченность наблюдения за работой парсера — используя инструменты визуального парсинга веб-страниц, вы не можете в полной мере наблюдать за работой парсера, как именно он сканирует сайт, что затрудняет выявление и устранение первопричин проблем с качеством извлеченных данных.
  • Уровни тестирования — инструменты визуального парсинга не дают вам полного контроля над сканером; следовательно, вы не можете знать, насколько хорошо каналы данных отслеживаются и проверяются на предмет наличия проблем. Это затрудняет поддержание качества данных и устранение проблем, которые неизбежно возникнут в процессе работы.

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

Сложные сайты

Еще одним недостатком визуальных инструментов разработки парсеров является тот факт, что часто им сложно работать с современными веб-сайтами, в которых широко используются JavaScript и AJAX (и React). Эти ограничения могут помешать получению всех необходимых данных и адекватному моделированию поведения пользователя. Часто бывает сложно или почти невозможно извлечь данные из определенных типов полей на веб-сайтах, например: скрытых элементов, запросов XHR и других не HTML-элементов (например, файлов PDF или XLS, встроенных в страницу).

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

Обход защиты от парсинга

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

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

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

Испытываете трудности при использовании визуального сконструированного парсера?

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

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

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

Устранение всех неудобств и трудностей, с которыми обычно сталкиваются компании при использовании визуальных инструментов для парсинга веб-страниц. Если вы считаете, что настало время применить этот подход к парсингу в Интернете, у вас есть два варианта:

  • Разработать и написать парсер самостоятельно; или же,
  • Подружиться с опытным разработчиком ботов для парсинга.

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

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

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Максим Кульгин", "author_type": "self", "tags": [], "comments": 12, "likes": 5, "favorites": 52, "is_advertisement": false, "subsite_label": "marketing", "id": 77766, "is_wide": false, "is_ugc": true, "date": "Fri, 02 Aug 2019 11:23:37 +0300" }
{ "id": 77766, "author_id": 20452, "diff_limit": 1000, "urls": {"diff":"\/comments\/77766\/get","add":"\/comments\/77766\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/77766"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199113, "last_count_and_date": null }
12 комментариев

Популярные

По порядку

Написать комментарий...
0

Занимался парсингом данных через визуальное ПО пару лет. И хочу с уверенностью сказать - такое ПО решает 95% всех задач. Использовал 2 программы: Datacol и Zennoposter. Первая(линк: https://clck.ru/HQSbA ) более простая, но есть небольшие ограничения по функционалу. Справляется с 70% задач по парсингу без знания языков программирования.
Вторая, Zennoposter(линк: https://clck.ru/HQSdp) - просто танк/ледокол/базука. Способна на get/post запросах спарсить всё что только можно, а ещё кроме этого автоматизировать кучу бизнес проессов. Делал на ней очень сложные проекты. А с небольшим знанием C#(ИМХО один из самых легких языков программирования) вы сможете намного быстрее написать нужную программу для веба чем строча весь код в блокноте!

Ответить
1

вы попробуйте, например, спарсить eapteka.ru с помощью визуального парсера :) и быстро поймете правду жизни. Но! совершенно согласен, что для ряда задач подойдет.

Ответить
0

Куда писать, чтобы уже сейчас получить ответ?

Ответить
0

а какой вопрос? можно мне в ФБ.

Ответить
0

Честно говоря, я бы постеснялся парсинг рекламировать :) особенно приплетая сюда компанию.

Это же серая деятельность. И теоретически активный парсинг может быть приравнен к ддосу, особенно, если прокси хорошие и многопоточка работает.

Да, я тоже данные собираю ;) Но! Я ж проггер, емае, и детские способы вроде сторонних прог и библиотек не использую. Парсер на голом php /phyton написать намного быстрее, чем тыркаться в настройках сторонней проги. Если уметь применять регулярки, конечно.

В этом деле главное - сервер чужой не положить.

Ответить
0

Ну смотря какой парсер. Самые простые парсеры на проге можно написать за пол часа(10 типов данных без математики и с нормальным сайтом). На самый сложный у меня уходило 2 дня. А у вас сколько времени уходит на это?
И вот кстати парсинг через регулярки на самом деле не такой эффективный чем структурный через xpath или по post/get. Эти "детские" проги помогают простому человеку, не изучая Php или Phyton, потыкавшись пол часа написать простой парсер. А если человек потыкается часа 3-5, то напишет почти всё что угодно. А сколько время нужно на изучение php?

Ответить
0

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

Сама по себе логика обхода пишется довольно быстро, исключая случаи, когда многоуровневое меню с разной глубиной вложенности. Проще всего, когда есть /catalog и побежали по страничкам. Еще проще, когда сервер выплевывает json, спасибо им за это ;)
Куда дольше разбирать данные. Особенно, если они не структурированы. Тогда делаешь тестовый прогон и визуально оцениваешь. Это не так страшно, как кажется - через Calc в csv легко найти косяки.

По поводу xpath. Анализ получаемого документа вносит значительную задержку. Если применять регулярку на содержимое ответа - это супер быстро.

Грубо говоря, если есть задача разобрать xml, особенно очень большой, или гору xml, или делать это постоянно, лучше не использовать преобразование xml в объект, прегметч намного быстрее работает.

Ответить
0

Парсинг не запрещен. Кроме того, недавно была статья, где ведущие ретейлеры признались что все используют парсинг для мониторинга цен. https://www.vedomosti.ru/business/articles/2017/09/07/732731-robotov-sgovore почитайте.

Ответить
0

По факту - да. Но грузить чужие серваки как-то неправильно.

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

Много чего не запрещено. Например, получить то, что открыто. Это грань. Поэтому я и назвал парсинг серым.

Ответить
0

отчасти соглашусь. Но очень востребованная история. Т.к. цены и ассортимент хотят мониторить все продавцы.

Ответить
0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Приложение-плацебо скачали
больше миллиона раз
Подписаться на push-уведомления
{ "page_type": "default" }