Веб-скрапинг (web Scraping) данных в самом общем виде относится к методу, в котором компьютерная программа извлекает данные из исходных данных, созданных другой программой. Очистка данных обычно проявляется в процессе использования приложения для извлечения ценной информации с веб-сайта.
Зачем скрейпить данные веб-сайта?
Как правило, компании не хотят, чтобы их уникальный контент загружался и повторно использовался в несанкционированных целях. В результате они не предоставляют все данные через потребляемый API или другой легко доступный ресурс. Скрейперы, с другой стороны, заинтересованы в получении данных веб-сайта независимо от любых попыток ограничения доступа. В результате, кошки-мышки между веб-скрейпингом и различными стратегиями защиты контента, каждый пытается переиграть другого.
Процесс веб-скрейпинга довольно прост, хотя реализация может быть сложной. Он происходит в 3 шага:
- Сначала фрагмент кода, используемый для извлечения информации, который мы называем скрейпом, отправляет запрос HTTP GET на определенный веб-сайт.
- Когда веб-сайт отвечает, скрейп анализирует HTML-документ для определенного шаблона данных.
- Как только данные извлечены, они преобразуются в любой конкретный формат, разработанный автором скрейпа.
Их можно конструировать для много целей, как:
- Скрейп контента. Контент может быть извлечен с веб-сайта для того, чтобы повторить уникальное преимущество конкретного продукта или услуги, которая опирается на контент. Например, такой продукт, как Yelp, полагается на отзывы. Конкуренты могут очистить все содержимое обзора от Yelp и воспроизвести его на своем собственном сайте, делая вид, что контент является оригинальным.
- Скрейп цен. Путем удаления данных о ценах, конкуренты могут агрегировать информацию о своей конкуренции. Это может позволить им сформулировать уникальное преимущество.
- Многие веб-сайты содержат адреса электронной почты и номера телефонов в открытом тексте. Путем скрейпа в таких местах, как интернет-спрвочник сотрудников, можно агрегировать контактные данные для массовых спам рассылок, робо-звонков, или вредоносных попыток социальной инженерии. Это один из основных методов, который используют как спамеры, так и мошенники для поиска новых целей.
Как смягчается веб-скрапинг?
Реальность такова, что нет никакого способа, чтобы остановить веб-скреп. Учитывая достаточное количество времени, находчивый веб-скрейпер может очищать весь веб-сайт с открытым доступом, страница за страницей. Это является результатом того факта, что любая информация, видимая внутри веб-браузера, должна быть загружена рендером.
Распространенный метод смягчения требует встраивания содержимого в мультимедийные объекты, такие как изображения. Поскольку содержимое не существует в строке символов, копирование содержимого является гораздо более сложным, требующим оптического распознавания символов (OCR) для извлечения данных из файла изображения. Это также может затруднить веб-пользователям копирование содержимого, например адреса или номера телефона, с веб-сайта вместо запоминания или повторного ввода.
Все содержимое, которое может видеть посетитель, должно быть передано на компьютер посетителя, и любая информация, к которой посетитель может получить доступ, может быть очищена.
Можно предпринять усилия, чтобы ограничить количество веб-скрейпа, которое может произойти. Существует 3 основных метода ограничения воздействия усилий по очистке данных:
- Запросы на ограничение скорости. Для человека, просматривающего серию веб-страниц на веб-сайте, скорость взаимодействия с веб-сайтом довольно предсказуема. Например, у компании никогда не будет человека, просматривающего 100 веб-страниц в секунду. Компьютеры, с другой стороны, могут делать запросы на порядки быстрее, чем человек, и начинающие скрейперы данных могут использовать методы необузданного скрейпа, чтобы попытаться очень быстро очистить весь веб-сайт. По скорости, ограничивающей максимальное количество запросов, которые конкретный IP-адрес может сделать в течение заданного окна времени. Веб-сайты могут защитить себя от эксплуататорских запросов и ограничить количество скрейпа данных, которые могут произойти в определенном окне.
- Изменение разметки HTML через регулярные промежутки времени. Программное обеспечение для скрейпа данных опирается на последовательное форматирование, чтобы эффективно просматривать содержимое веб-сайта и анализировать, и сохранять полезные данные. Одним из способов прерывания этого рабочего процесса является регулярное изменение элементов HTML-разметки, что усложняет последовательную очистку. Путем вложения HTML-элементов или изменения других аспектов разметки простые усилия по очистке данных будут затруднены или сорваны. Для некоторых веб-сайтов, каждый раз, когда веб-страница оказывается в той или иной форме изменения защиты контента рандомизированы и реализованы, в то время как другие изменяют свой веб-сайт иногда, чтобы предотвратить долгосрочные усилия по очистке данных.
- Использовать “капчу” для больших объемов запросов. В дополнение к использованию решения для ограничения скорости, еще одним полезным шагом в замедлении скрейпа контента является требование, чтобы посетитель веб-сайта ответил на задачу, которую трудно преодолеть компьютеру. В то время как человек может разумно ответить на вопрос, безголовый браузер, участвующий в очистке данных, скорее всего, не сможет. Другие задачи на основе javascript могут быть реализованы для тестирования функциональности браузера.
Безголовый браузер – это тип веб-браузера, похожий на Chrome или Firefox, но по умолчанию он не имеет визуального пользовательского интерфейса, что позволяет ему двигаться намного быстрее, чем обычный веб-браузер. По существу, работает на уровне командной строки, безголовый браузер может избежать визуализации всего веб-приложения. Скрейперы данных пишут сценарии для использования безголовых браузеров для более быстрого запроса данных, так как нет человеческого просмотра каждой очищаемой страницы.
На видео: Что это такое веб-скрейпинг?