{"id":14270,"url":"\/distributions\/14270\/click?bit=1&hash=a51bb85a950ab21cdf691932d23b81e76bd428323f3fda8d1e62b0843a9e5699","title":"\u041b\u044b\u0436\u0438, \u043c\u0443\u0437\u044b\u043a\u0430 \u0438 \u0410\u043b\u044c\u0444\u0430-\u0411\u0430\u043d\u043a \u2014 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0433\u043e\u0440\u0435","buttonText":"\u041d\u0430 \u043a\u0430\u043a\u043e\u0439?","imageUuid":"f84aced9-2f9d-5a50-9157-8e37d6ce1060"}

Руководство по парсингу веб-сайтов в 2021 году

Меня зовут Максим Кульгин и моя компания xmldatafeed занимается парсингом сайтов в России порядка четырех лет. Ежедневно мы парсим более 500 крупнейших интернет-магазинов в России и на выходе мы отдаем данные в формате Excel/CSV и делаем готовую аналитику для маркетплейсов. Тема парсинга в последнее время становится все более востребованной и в этой статье мы хотим дать общий обзор подходов и механизмов парсинга данных, учитывая правовые особенности.

За последнее десятилетие данные стали ресурсом для развития бизнеса, а Интернет — их основным источником благодаря пяти миллиардам пользователей, формирующим миллиарды фрагментов данных каждую секунду. Анализ данных Всемирной паутины может помочь компаниям выявлять скрытые закономерности, позволяющие им добиваться выполнения своих целей. Однако сбор большого объема данных — непростая для компаний задача, особенно для тех, которые думают, что кнопка «Экспортировать в Excel» (если такая присутствует) и обработка данных вручную — единственные способы сбора данных.

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

Что такое парсинг веб-сайтов?

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

Процесс парсинга веб-сайтов включает в себя отправку запросов на получение веб-страницы и извлечение из нее машиночитаемой информации.

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

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

Эти факторы объясняют возрастающий интерес к парсингу веб-сайтов, который можно наблюдать в Google Trends на представленном выше изображении.

Как осуществляется парсинг веб-сайтов?

Обычно процесс парсинга веб-сайтов состоит из следующих последовательных шагов:

  • Идентификация целевых URL-адресов.
  • Если веб-сайт, сканируемый для сбора данных, использует инструменты противодействия парсингу, то парсеру, возможно, придется выбрать подходящий прокси-сервер, чтобы получить новый IP-адрес, через который парсер будет отправлять свой запрос.
  • Отправка запросов на эти URL-адреса для получения HTML-кода.
  • Использование указателей для обнаружения местонахождения данных в HTML-коде.
  • Аналитический разбор строки данных, которая содержит нужную информацию.
  • Преобразование собранных данных в желаемый формат.
  • Передача собранных данных в выбранное хранилище данных.

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

Распространенные варианты применения парсинга веб-сайтов перечислены ниже.

  • Аналитика данных и наука о данных (data science).Сбор «тренировочных» данных для машинного обучения.Наполнение корпоративных баз данных.
  • Маркетинг и продажи.Сравнение цен (особенно актуально в электронной коммерции).Извлечение описания товаров.Отслеживание в поисковых системах конкурентов и текущего состояния компаний в рамках усилий по поисковой оптимизации (SEO).Лидогенерация.Тестирование веб-сайтов.Отслеживание потребительских настроений.
  • PR.Агрегация новостей о компании.
  • Торговля.Сбор финансовых данных.
  • Стратегическое планирование.Исследование рынка.

Как выглядит сфера парсинга веб-сайтов?

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

Инструменты

Решения с открытым исходным кодом

Фреймворки с открытым исходным кодом делают парсинг веб-сайтов дешевле и проще для личного использования. Наиболее широко используемые инструменты: Scrapy, Selenium, BeautifulSoup и Puppeteer.

Пользователи могут собирать информацию, используя библиотеки наподобие Selenium, чтобы автоматизировать этот процесс. Когда на веб-странице есть список, то чаще всего есть и другие страницы, помимо той, которая сразу отображается пользователю. Пример — веб-страницы с «бесконечной прокруткой». Например, предположим, что вы просматриваете веб-страницы YouTube. На веб-странице, которую вы просматриваете, среди всех перечисленных видео не оказалось такого, который вы бы захотели посмотреть. Затем вам нужно прокрутить список вниз, чтобы появились следующие видео. Selenium позволяет пользователям автоматизировать перемещение по последующим страницам списка и сканирование требуемой информации о каждом элементе списка. Далее пользователи могут сформировать набор данных, содержащий информацию о каждом элементе списка, представленного на веб-сайте. Например, можно создать набор данных о фильмах, в который будут входить наименования, рейтинги IMDb, актеры и позиции фильмов в топе 250 IMDb, сканируя список лучших фильмов по версии IMDb с помощью инструментов с открытым исходным кодом наподобие Scrapy.

Проприетарные программные решения

Хотя на рынке есть различные проприетарные решения, продукты разделены на два типа:

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

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

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

Управляемые услуги

Полностью управляемые услуги по парсингу веб-сайтов, также называемые «данные-как-услуга» (data-as-a-service, DaaS), будут более удобны для компаний, которым нужен широкомасштабный сбор данных. Работа с веб-сервисами, предоставляющими такие услуги, обычно выглядит так:

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

Такие компании, как Yipitdata, PromptCloud и ScrapeHero, — некоторые из поставщиков, предлагающих полностью управляемые услуги по парсингу веб-сайтов.

Собственные внутриорганизационные решения

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

Схема выбор инструмента для парсинга

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

  • Собираетесь ли вы собирать данные только для личного использования? Если да, то выберите инструмент с открытым исходным кодом или его community-версию, что позволит вам собирать данные бесплатно.
  • Если нет, то работает ли ваша IT-компания над стратегически важными проектами, которые дифференцируют ваши продукты или услуг?
  • Если да, то сформируйте в компании команду, которая будет предотвращать сбор ваших данных сторонними компаниями.
  • Если нет, то позволяет ли ваш бюджет инвестировать более $10 000?
  • Если да, то отдайте предпочтение управляемым услугам, поскольку системы парсинга данных требуют существенных усилий по их поддержке. Возможно, что вам не захочется, чтобы команда вашей компании была сосредоточена на поддержке проекта, который не является стратегически важным.
  • Если нет, то есть ли у вас навыки программирования? Если есть, то отдайте предпочтение решениям с открытым исходным кодом или недорогим проприетарным решениям. Разработка своего парсера может быть эффективнее, чем использование решений, не требующих написания программного кода, поскольку разработанное решение может предложить более высокий уровень автоматизации.
  • Если их нет, то сделайте выбор в пользу решений, которыми можно пользоваться без программирования. Большинство из них проприетарные, но их можно приобрести и с ограниченным бюджетом.

Законно ли заниматься парсингом?

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

Персональные данные

Законность парсинга ранее долгое время была неоднозначной, но сейчас в этом вопросе больше ясности. В настоящее время нормативно-правовые акты, регулирующие конфиденциальность персональных данных, наподобие GDPR Европейского союза и CCPA в Калифорнии не препятствуют парсингу веб-сайтов. В России недавно приняли дополнительные поправки в закон об Персональных данных. Просто убедитесь, что:

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

Данные, которые не относятся к персональным

Говоря о компаниях, Апелляционный суд девятого округа США после иска LinkedIn против hiQ постановил, что автоматический парсинг общедоступных данных, очевидно, не нарушает Закон о компьютерном мошенничестве и злоупотреблении (Computer Fraud and Abuse Act, CFAA).

Ограничения

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

  • Извлечение данных не должно причинять какой-либо ущерб владельцам данных.
  • Парсер не может публиковать данные без указания их источника. Это было бы неэтично и незаконно.

Примеры

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

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

Отчет 2020 от imperva о нежелательных программных роботах, собирающих данные

  • Сборщики данных могут значительно ухудшить производительность веб-сайта. Роботы, включая поисковых, составляют 24% веб-трафика согласно Imperva — поставщику ПО для обеспечения информационной безопасности.
  • Конкуренты могут собирать и анализировать данные на страницах веб-сайта. Например, это позволяет им посредством уведомлений оперативно узнавать о новых клиентах, партнерских связях или возможностях конкурентов.
  • Кроме того, внутренние непубличные данные владельцев веб-сайта могут быть собраны конкурентами, создающими аналогичные продукты или конкурирующие услуги, уменьшая спрос на услуги владельцев веб-сайта.
  • Защищенный авторским правом контент владельцев веб-сайта может быть скопирован и процитирован без ссылок на источник, приводя к потере дохода у создателей контента.

Какие сложности могут возникнуть при парсинге веб-сайтов?

  • Веб-сайты со сложной структурой: большинство веб-страниц основаны на использовании HTML, и структура одной веб-страницы может сильно отличаться от структуры другой. Следовательно, когда вам нужно спарсить несколько веб-сайтов, для каждого из них придется создать свой парсер.
  • Поддержка парсера может быть дорогой: веб-сайты всё время меняют дизайн веб-страницы. Если местоположение собираемых данных меняется, то программный код сборщиков данных необходимо снова доработать.
  • Используемые веб-сайтами инструменты противодействия парсингу: такие инструменты позволяют веб-разработчикам управлять контентом, который отображается роботам и людям, а также ограничивать роботам возможность собирать данные на веб-сайте. Некоторые из методов защиты от парсинга: блокировка IP-адресов, captcha (Completely Automated Public Turing test to tell Computers and Humans Apart — полностью автоматический тест Тьюринга для различения компьютеров и людей) и ловушки в виде приманок для парсеров.
  • Необходимость авторизации: чтобы собрать во Всемирной паутине определенную информацию, возможно, вам сначала потребуется пройти авторизацию. Поэтому когда веб-сайт требует войти в систему, нужно убедиться, что парсер сохраняет файлы cookie, которые были отправлены вместе с запросом, чтобы веб-сайт воспринимал парсер в качестве авторизованного ранее посетителя.
  • Медленная или нестабильная скорость загрузки: когда веб-сайты загружают контент медленно или не отвечают на запросы, может помочь обновление страницы, хотя парсер, возможно, не знает, что делать в такой ситуации.

Какие приемы парсинга веб-сайтов считаются лучшими?

Распространенные и наиболее успешные приемы парсинга веб-сайтов:

Использование прокси-серверов

Многие администраторы крупных веб-сайтов применяют инструменты для защиты от роботов. Роботам приходится обходить их, чтобы просканировать большое количество HTML-страниц. Использование прокси-серверов и отправка запросов через разные IP-адреса могут помочь преодолеть эти трудности.

Использование динамического IP-адреса

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

Замедление процесса сбора данных

Следует ограничить частоту отправки запросов на один и тот же веб-сайт по двум причинам:

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

Соблюдение требований GDPR

Согласно GDPR, незаконно собирать личную информацию (personally identifiable information, PII) резидентов ЕС, если только у вас нет их явного на это согласия.

Бойтесь пользовательских соглашений

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

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

Что сулит будущее для парсинга веб-сайтов?

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

Открытый исходный код играет важную роль в разработке ПО, в том числе в области разработки парсеров. Кроме того, популярность Python растет, и она уже довольно высока. Можно ожидать, что библиотеки с открытым исходным кодом, как например: Selenium, Scrapy и Beautiful Soup, которые работают на Python, будут в ближайшем будущем формировать подходы к парсингу веб-сайтов.

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

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

Интересная позиция. Парсить законно но мы на всякий случай спрачемся за proxy.

Ответить
Развернуть ветку
Максим Кульгин
Автор

главное перс.данные не хватать. 

Ответить
Развернуть ветку
Владимир AngryCEO

Вам нужно поговорить с вашим сеошником, который написал почти во все заголовки "веб сайты" о том как не надо писать структуру статьи в ТЗ копирайтеру. И подскажите, пожалуйста, какие ещё типы сайтов кроме "веб" существуют?

Ответить
Развернуть ветку
Виктор Петров

ed2k, gopher, et cetera?

Ответить
Развернуть ветку
Владимир AngryCEO

А они существуют? Как посмотреть на "Невеб" сайт с указанными протоколами (интересно реально). Веб сайт это как "сайты в сети интернет". Так пишут те кто от интернета далёк (имхо), а тут компания которая парсит сайты использует такие формулировки. 

Ответить
Развернуть ветку
Виктор Петров

Ну факт, что это было и даже есть. Слово имеет право на жизнь.

Ответить
Развернуть ветку
Максим Кульгин
Автор

писал я в том числе. веб сайты = сайты. кажется, что это слова синонимы нынче. 

Ответить
Развернуть ветку
Владимир AngryCEO

Да я об этом же. Это сейчас равнозначные слова, так зачем использовать приставку "веб"? А про заголовки - спамность бросается в глаза. Смотрится как сеошная статья 5-10 летней давности.

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
В А

Буква Г не поместилась, но это не беда!

Ответить
Развернуть ветку
Максим Кульгин
Автор

спасибо.

Ответить
Развернуть ветку
Sergei Shahov

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

Ответить
Развернуть ветку
KSA
 то, по всей видимости, заниматься парсингом законно.

Как-то неубедительно

Ответить
Развернуть ветку
Максим Кульгин
Автор

законно, если вы не собираете персональные данные + не нарушаете закон об авторских правах. 

Ответить
Развернуть ветку
10 комментариев
Раскрывать всегда