Добавить в корзинуПозвонить
Найти в Дзене
iDatica

Как выбрать инструмент для парсинга сайтов: обзор сервисов, программ, фреймворков

Для начала разберемся, что такое парсинг — это автоматизированный сбор данных из различных источников в интернет. Парсинг, калька с английского "to parse" – разбирать и это определение отражает суть процесса той работы, которая происходит при парсинге. Исходная структура данных, сайт или таблица “разбирается” на отдельные кирпичики - нужные нам данные и после собирается в нужном нам порядке или
Оглавление

Для начала разберемся, что такое парсинг — это автоматизированный сбор данных из различных источников в интернет. Парсинг, калька с английского "to parse" – разбирать и это определение отражает суть процесса той работы, которая происходит при парсинге. Исходная структура данных, сайт или таблица “разбирается” на отдельные кирпичики - нужные нам данные и после собирается в нужном нам порядке или попросту сохраняется в табличном виде в файл, например в таблицу Эксель.

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

Кто и зачем использует парсинг?

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

  • Маркетологам нужно собирать информацию о продажах, узнавать категорийный спрос долю полки в товарном ассортименте, а также другие показатели помогающие прогнозировать закупки и продажи;
  • Менеджеры-управленцы производств и оптовых компаний мониторят соблюдение условий партнерами реселлерами;
  • Менеджеры продукта собирают метрики продуктов, данные для тестов и машинного обучения;
  • Аналитики и менеджеры ценообразования отслеживают изменение цен конкурентов и управляют динамическим ценообразованием;
  • Разработчики автоматизируют наполнение интернет-магазинов контентом;
  • SEO-специалисты получают метаданные, H1, Title, Description, ключевые слова, находят страницы, отдающие 404 ошибку;
  • Контент-менеджеры собирают статьи или другой нужный контент.

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

Парсинг и закон

Сперва стоит сказать, что отдельного регулирования области парсинга в РФ нет. А значит нужно руководствоваться действующим законодательством. В большинстве случаев требуемая информация представляется публично, доступ к ней не ограничен, и она является общедоступной (названия товаров, цены) - такую информацию собирать парсером можно. Важно, чтобы при использовании парсинга не нарушались условия:

  • Собираемые данные являются общедоступными;
  • Сбор не нарушает правила использования сайта;
  • На данные не распространяется авторское право;
  • Сбор не приводит к ограничению конкуренции;
  • Парсинг не приводит к нарушению работы сайта;
  • Не извлекается персональная информация;
  • Не извлекать совокупность представляющих базу данных;

Классификация и выбор инструмента для парсинга

По использованию ресурсов

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

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

Облачные решения

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

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

Достоинства:

  • Не нужно устанавливать на компьютер;
  • Не нужно тратить место на хранение данных;
  • Можно работать с большими данными;
  • Часто наличие API;

Недостатки:

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

Самые популярные сервисы в этой категории:

Octoparse – популярный сервис в облаке.

Особенности:

  • Визуальная настройка парсинга;
  • Не нужно уметь программировать;
  • Понимает динамическое содержание сайтов, подгрузку данных, всплывающую авторизацию, раскрывающиеся формы с данными;
  • Язык сервиса – английский;

Стоимость (в месяц):

  • Бесплатный тариф - до 10.000 значений в 2 параллельных потока;
  • Платные тарифы $89, $249 включают разное количество данных для парсинга;
  • Персонализированный тариф для индивидуальных проектов - по запросу.

Scraper API – хорошо документированный сервис, с наличием API.

-2

Особенности:

  • Ротация прокси серверов и автоповтор неуспешных запросов;
  • Ввод capcha;
  • Отдача данных через API
  • Требуется умение программировать;
  • Язык сервиса – английский;

GET запрос, для примера:

-3

Стоимость (в месяц):

  • Бесплатный тариф – 1000API запросов, в 5 потоков;
  • Платные тарифы $29, $99 не включены – геотаргетинг, прокси, JavaScript;
  • Расширенный бизнес-тариф, $249 с включенным JavaScript;
  • Персонализированный тариф для индивидуальных проектов - по запросу.

ScrapingHub – облачный инструмент, с поддержкой прокси-серверов, headless(безголового) браузера и инструментария хранения данных.

-4

Особенности:

  • Сервис включает набор инструментов, с оплатой за нужные;
  • API;
  • Видео-туториалы объясняющие процесс работы;
  • Язык сервиса – английский.

Стоимость прокси (в месяц):

  • Демо-доступ - 10000 запросов;
  • $99 - 200000 запросов, $349 – 2.5м запросов;
  • Без ограничений от $999.

Хранение данных в облаке (в месяц):

  • Бесплатный тариф - 7 дней;
  • Платный тариф - $9.

Headless браузер (в месяц):

  • $25 / $50 / $100 в зависимости от мощности сервера.
  • Персонализированный тариф для индивидуальных проектов - по запросу.

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

-5

Особенности:

  • Возможность вернуть деньги, если вы не сможете собрать нужные данные с помощью сервиса;
  • Хорошая тех поддержка;
  • Возможность парсить без знания программирования;
  • Наличие API;
  • Интеграция с различными сервисами, трекерами, Bl системами;
  • Язык сервиса – английский.

Стоимость (в месяц):

  • Бесплатный тариф включает 30 дней;
  • Платные тарифы - $250, $450 включают разные сервисы;
  • Персонализированный тариф для индивидуальных проектов - по запросу.

ScrapingBee – сервис парсинга данных через headless-браузер, требует умения программировать.

-6

Особенности:

  • Ротация прокси;
  • API;
  • Поддержка JavaScript;
  • Оплата только за скачанные данные;
  • Язык сервиса – английский.

Стоимость (в месяц):

  • Бесплатный тариф - 1000 запросов;
  • $29 - 25 000 запросов, прокси, нет API;
  • $99 - 1 000000 запросов, прокси, поддержка API;
  • Персонализированный тариф для индивидуальных проектов - по запросу.

Программы для парсинга (десктоп решения)

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

Достоинства:

  • Всегда доступны;
  • Часто просты в освоении и программировании.

Недостатки:

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

ParseHub – программа для визуального захвата данных.

Интерфейс:

-7

Особенности:

  • Планировщик старта парсинга;
  • Поддержка сторонних прокси серверов
  • Поддержка регулярных выражений;
  • API;
  • Поддержка JavaScript
  • Поддержка AJAX;
  • Выгрузка данных в Google sheets;
  • Поддержка OS - Windows, Mac, Linux;
  • Язык – английский.

Стоимость (в месяц):

  • Бесплатный план – сбор данных с 200 страниц, только текст, нет прокси;
  • $149 - 10000 страниц, но не более 200 страниц за 10 минут, скачает файлы, есть прокси и планировщик;
  • $499 - неограниченное количество, но не более 200 страниц за 2 минут, закачка файлов, прокси, планировщик;
  • Индивидуальный тариф.

Easy Web Extract – простая программ для парсинга сайтов с визуальным захватом данных.

Интерфейс:

-8

Особенности:

  • Визуальный захват;
  • До 24 одновременных потоков;
  • Поддержка динамического содержания;
  • Гуманизация действий робота;
  • Планировщик;
  • Поддержка закачки файлов;
  • OS - Windows;
  • Язык – английский.

Стоимость:

  • Бесплатная версия - 14 дней, позволяет собрать до 200 значений, экспорт до 50 значений;
  • Полная версия - $39
  • Лицензия на дополнительный компьютер - $29.

FMiner –инструмент для визуального парсинга, с интуитивным интерфейсом. Поддерживает капчу и прокси.

Интерфейс:

-9

Особенности:

  • Визуальное программирование процесса парсинга;
  • Поддержка динамического содержания
  • Ajax
  • JavaScript;
  • Несколько одновременных потоков;
  • Ввод капчи;
  • OS - Windows, Mac;
  • Язык – английский.

Стоимость:

  • Бесплатная версия - 15 дней;
  • Basic - $168;
  • Pro - $248.

Helium Scraper – программа для парсинга, многопоточность и большие объемы базы данных.

Интерфейс:

-10

Особенности:

  • Поддержка визуального программирования;
  • Парсинг динамического содержания;
  • Многопоточная работа;
  • Поддержка прокси;
  • OS - Windows;
  • Язык – английский.

Стоимость:

  • Бесплатная версия на 10 дней;
  • 4 тарифных плана стартуют с $99 до $699.

WebHarvy Web Scraper – программа для визуального программирования парсинга, способна находить паттерны в структуре сайта и собирать данные с их учетом.

Интерфейс:

-11

Особенности:

  • Визуальное программирование процесса сбора данных;
  • Динамическое содержание;
  • Многопоточность;
  • Поддержка прокси-серверов;
  • Автозаполнение данных;
  • Планировщик;
  • Работа с загружаемым списком адресов;
  • Ввод капчи;
  • OS - Windows;
  • Язык – английский.

Стоимость:

  • Бесплатная версия - 15 дней, не более 2 страниц сайта;
  • Полная версия от $139 до $699.

Фреймворки для парсинга данных

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

Фреймворки Python

Фреймворки позволяющие строить парсеры сайтов на Python позволят создать надежные и быстрые системы с поддержкой API. Все представленные библиотеки имеют открытый исходный код.

Scrapy – популярный фреймворк, приобрел значительное сообщество и подробно документирован и структурирован.

-12

Лицензия: BSD

BeautifulSoup – предназначен для работы с HTML и XML содержимым, документация на русском, автоматически считывает кодировку. Позволяет реализовать высокую скорость работы.

-13

Лицензия: CC BY-SA 2.0

PySpider – поддержка динамического содержания JavaScript, быстрый, не поддерживает прокси-сервера.

-14

Лицензия: Apache, V. 2.0

Grab – работает с многопоточностью, асинхронный, документация переведена на русский язык, поддержка API.

-15

Лицензия: MIT

Lxml – работает с HTM и XML содержимым, хорошо справляется с большими объемами, подробная документация. Поддерживает работу с BeautifulSoup (используется как парсер).

-16

Лицензия: BSD

Selenium – набор инструментов автоматизирующий работу с браузерами. Предлагает возможность записывать и воспроизводить действия пользователя. Поддерживает работу языками – JavaScript, Java, Ruby, C Sharp.

-17

Лицензия: Apache, V. 2.0

Фреймворки JavaScript

Фреймворки JavaScript предлагают простоту, скорость и поддержку API.

Cheerio – предлагает работу с HTML разметкой, быстрый. Поддерживает API.

-18

Лицензия: MIT

Apify SDK –библиотека Node.js, предлагает брать данные из HTML, JSON, JSONL, CSV, XML, XLSX, CSS. Поддерживает прокси-сервера. Хороший, функциональный выбор.

-19

Лицензия: Apache, V. 2.0

Osmosis – фреймворк Node.js, работает с AJAX и поддерживает селекторы CSS (3.0 и XPath 1.0), может логировать адреса и самостоятельно заполнять формы данными.

-20

Лицензия: MIT

Фреймворки Java

Java предлагает множество решений для парсинга данных.

Jaunt – безголовый (headless) браузер для парсинга сайтов и автоматизации процессов. Поддерживает REST API или веб данные, HTML, JSON, XHTML, XML. Работает с формами, файлами и таблицами, поддерживает регулярные выражения.

-21

Лицензия: Apache

Jsoup – работает с HTML данными, есть API. Поддерживает прокси. Не понимает XPath.

-22

Лицензия: MIT

HtmlUnit – это безголовый браузер, не имеющий графического интерфейса. Работает с HTML разметкой, поддерживает API с возможностью вызова страниц, работает с формами данных. Поддерживает JavaScript и XPath.

-23

Лицензия: Apache, V. 2.0

CyberNeko HTML Parser – простое решение для парсинга, позволяет брать HTML данные и обрабатывать их с помощью XPath.

-24

Лицензия: Apache, V. 2.0

Браузерные дополнения (расширения)

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

Scrape.it – Chrome совместимое расширение для парсинга сайтов, с визуальным “Point-Click” интерфейсом.

-25

Особенности:

  • Визуальный “Point-Click” редактор;
  • Работа с динамическим содержанием;
  • Многопоточность;
  • Поддержка прокси;
  • Язык – английский.

Стоимость (в месяц):

  • Бесплатный тариф - 30 дней;
  • Платные тарифы - $19.9, $49.9, $199.9 отличающиеся скоростью сбора данных.

Web Scraper.io –расширение для браузеров Firefox и Chrome. Сервис поддерживает множество опций, среди которых - визуальное программирование.

-26

Особенности:

  • Визуальная работа с данными;
  • Работа с динамическим содержимым;
  • Многопоточность;
  • Поддержка прокси;
  • API;
  • Выгрузка данных в Dropbox;
  • Язык – английский.

Стоимость (в месяц):

  • Бесплатный период - 30 дней;
  • Платные тарифы - $19.9, $49.9, $199.9, отличаются скоростью обработки данных.

Data miner – расширение для Edge и Chrome, собирает информацию с сайтов при помощи простого визуального программирования.

-27

Особенности:

  • Визуальное программирование;
  • Шаблоны для множества сайтов;
  • Парсинг списка адресов;
  • Поддержка работы с пагинацией;
  • Заполнение форм;
  • Эмуляция действий человека;
  • Язык – английский;

Стоимость (в месяц):

  • Бесплатный тариф - 500 страниц в месяц;
  • Платные тарифы - $19, $49, $99, $199.9 разрешают парсить разное количество страниц: от 500 до 9000;
  • Enterprise – тариф с настройкой под задачу.

Scraper.Ai – расширение для Edge, Firefox, Chrome с широким набором возможностей, доступное по цене.

-28

Особенности:

  • Визуальное программирование;
  • Шаблоны для парсинга Twitter, Facebook, Instagram;
  • Работа с пагинацией;
  • Заполнение форм;
  • Планировщик задание;
  • Может отслеживать изменение на сайте;
  • Язык – английский.

Стоимость (в месяц):

  • Бесплатный тариф - 3 месяца, возможность обходить 50 страниц;
  • Платные тарифы $9, $49, $99 с различным количеством страниц доступных для обхода.

Парсеры SEO-данных

Для сбора SEO-данных также применяются парсеры, они помогают:

  • Cобирать мету - Заголовки, Title, Description, ключевые слова;
  • Собирать семантические ядра;
  • Собирать количественные данные о посещениях сайта и отдельных страниц;
  • Собирать поведенческие данные о посетителях.

Набор сервисов очень широк, по функциональным возможностям. Рассмотрим некоторые сервисы, как платные, так и бесплатные, что бы была возможность выбора.

SiteAnalyzer – программа позволяющая проверять технические SEO данные сайта. Отличительная особенность программы – ее бесплатность. Доступна только для операционной системы Windows.

-29

Особенности:

  • Быстро работает даже на слабых компьютерах;
  • Проверяет документы, скрипты, страницы и изображения;
  • Проверяет ответ страницы (200, 404…);
  • Проверка метаинформации;
  • Ищет дубликаты страниц;
  • Анализ ссылок (внутренних и внешних);
  • Экспорт результатов в Csv, Excel, Pdf;
  • Русскоязычный интерфейс.

Стоимость:

  • Бесплатно.

Screaming Frog SEO Spider – популярная программа для SEO анализа сайта. Парсер имеет множество возможностей и считается одним из лучших в классе.

-30

Особенности:

  • Сильно нагружает компьютер;
  • Поддержка Google Analytics и Search Console;
  • Поддержка юзер-агентов;
  • Возможность создать локальный htaccess;
  • Планировщик;
  • Проверка скриптов, документов, страниц, изображений;
  • Проверка кодов ответа (200, 404…);
  • Проверка мета данных;
  • Поиск дублирующих страниц;
  • Проверка внутренних и внешних ссылок;
  • Поддержка Windows, MacOS, Ubuntu;
  • Экспорт результатов сканирования;
  • Англоязычный интерфейс.

Стоимость:

  • Бесплатная версия имеет ограничение в 500 адресов и урезанный функционал;
  • Полная версия стоит $200.

ComparseR – программа предназначена для проверки индексации страниц сайта в Яндекс и Google.

-31

Особенности:

  • Поиск страниц сайта присутствующих в поиске;
  • Поддержка RegExp;
  • Ввод капчи;
  • Проверка кодов ответа (200, 404…);
  • Проверка мета данных;
  • Поиск дублирующих страниц;
  • Анализ внутренних и внешних ссылок;
  • Поддержка Windows;
  • Экспорт данных;
  • Русскоязычный интерфейс.

Стоимость:

  • Пробная версия обходит 150 страниц или 150 результатов выдачи;
  • Полная версия стоит 2000 руб.

Парсеры данных в таблицы

Решения специфичны, но могут пригодится для несложных задач, на незащищенных сайтах. Собирают данные в таблицы MS Excel и Google sheets. В основе механизмов работы - формулы собирающие данные с сайтов и макросы, автоматизирующие процесс.

ParserOk – парсинг автоматизируется макросами vba в таблицы MS Excel. Устанавливается как надстройка и позволяет импортировать информацию с сайтов по заранее запрограммированным шаблонам. Недостаток решения – необходимость править шаблон если источник парсинга изменится.

  • Бесплатная версия работает 10 дней;
  • Полная версия стоит 2700 р.

Importhtml и Importxml – функции Google sheets импортируют данные прямо в таблицы. Функции помогут собрать данные по заранее созданному шаблону. Если вы владеете “Xpath”, то сможете расширить возможности такого парсинга.

Сервисы для парсинга под ключ

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

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

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

Примеры сервисов реализующих парсинг “под ключ” есть в разделе облачные решения, некоторые компании предлагают настраиваемые решения, это указано в разделе стоимость. Дополним список русскоязычным сервисом:

iDatica – сервис специализируется на комплексе задач:

  • Парсинг;
  • Очистка данных;
  • Сопоставление данных (матчинг);
  • Визуализации данных.

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

-32

Особенности:

  • Персональный подход к решению задачи;
  • Работа “под ключ”, нужно только описать задачу;
  • Работа с защищенными сайтами;
  • Очистка и сопоставление данных;
  • Подключение BI сервисов для визуализации;
  • Выделенный аналитик;
  • Язык – русский, английский.

Стоимость, в месяц:

  • От 1500 рублей, в зависимости от сложности и периодичности парсинга.

Как выбрать решение для парсинга

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

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

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

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

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