Лучший опыт

Ваш веб-парсер блокируется ... Методы борьбы с парсингом 2023: Как спарсить сайт и не получить блокировку?

Методы борьбы с парсингом 2023: Как спарсить сайт и не получить блокировку?...

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

Веб-парсинг прошел долгий путь и помог большому количеству компаний увеличить масштабы и получить полезные сведения из данных. Если интересующие вас данные можно найти в Интернете, а не за платным брандмауэром, вы можете получить их с помощью веб-парсинга. Хотя сложность парсинга варьируется от сайта к сайту в зависимости от методов защиты от парсинга. Хотя некоторые сайты могут стать занозой в шее веб-парсеров правда в том, что вы все равно можете спарсить их, не попадая в черный список, при условии, что вы знаете методы, используемые для обнаружения трафика вашего бота. В этой статье вы узнаете о том, как предотвратить обнаружение и блокировку веб-сайтами ваших веб-парсеров. Я расскажу об используемых веб-сайтами методах защиты от парсинга и о том, как их обойти, чтобы добиться успеха в парсинге выбранного вами сайта. Но перед этим давайте рассмотрим краткий обзор файла robots.txt.

Файл Robots.txt — обзор

robots.txt — это другое название стандарта исключения роботов или протокола исключения роботов. Это файл, который веб-сайты используют для связи с веб-краулерами, парсерами и другими ботами для автоматизации веб-сайтов. В нем указываются области сайта, к которым бот должен иметь доступ, и области, к которым он не должен. Его также можно использовать для общения с определенными ботами. Для сайтов, которым необходимо общаться с веб-роботами, они создают файл robots.txt в корне своего сайта. (https://www.luminati.io/robots ). Ниже приведено содержание файла robots.txt популярной прокси-сети Luminati.

User-Agent: *

Запретить: /lum/

Запретить: /lp/*

Запретить: /www/*.html

Запретить: /use_cases/fintech

Хост: luminati.io

Карта сайта: https://luminati.io/sitemap.xml

Из вышеприведенного видно, что есть URL/пути, к которым он не хочет, чтобы веб-краулеры/парсеры имели доступ. Он даже указывает ссылку на свою карту сайта. Чтобы узнать о стандарте общения с помощью файла robots.txt, посетите сайт robots.txt. Сайты, которые не хотят, чтобы их парсили, сообщают об этом в своем файле robots.txt. В то время как поисковые системы, такие как Google, Bing, Yandex, и некоторые другие компании, занимающиеся парсингом, уважают файлы robots.txt сайтов, большинство веб-парсеров, таких как сборщики электронной почты, боты для проверки уязвимостей в системе безопасности и многие другие боты, не уважают инструкции в этом файле. Даже если вы не будете уважать robots.txt сайта, который вы хотите спарсить, я посоветую вам быть вежливым и мягким — избегайте заваливать сайты большим количеством запросов в течение короткого промежутка времени.

Методы борьбы с кражами

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

Отслеживание и блокировка IP-адресов

Наиболее популярной техникой защиты от парсинга, используемой веб-сайтами, является отслеживание IP-адресов. Для каждого запроса, поступающего на их сервер, они ведут учет IP-адресов, использованных для его отправки. Если они замечают более чем достаточное количество запросов, поступающих с одного IP-адреса, то такой IP-адрес может принадлежать боту. Большинство сложных веб-сайтов имеют лимит запросов, который обычно составляет 10 в минуту, 600 в час. Если вы отправляете больше этого лимита, ваш трафик будет заподозрен как бот-трафик, и когда это произойдет, ваш IP-адрес будет заблокирован для доступа к сайту. Эта блокировка обычно временная, за исключением нескольких случаев, которые могут быть постоянными. Но, как вы знаете, веб-парсинг требует отправки большого количества запросов, превышающих количество, которое может отправить человек, и поэтому вы обязательно превысите эти лимиты. Что же делать, чтобы обойти эту технику? Самый эффективный способ обойти блокировку IP-адресов — использовать прокси-серверы. Прокси маскируют ваш IP и прикрепляют к вашим запросам другой IP-адрес, тем самым позволяя вам анонимно пользоваться Интернетом. Количество IP-адресов, которые у вас есть, определяет масштаб, с которым вы можете заниматься парсингом. Для веб-парсинга рекомендуется использовать пул прокси, так как это облегчает ротацию IP-адресов и позволяет избежать использования одного и того же IP-адреса снова и снова. Это позволит вам избежать блокировки IP-адресов. Если вы можете самостоятельно справиться с управлением прокси и ротацией, вы можете использовать выделенные прокси. Для новичков лучше подходят API прокси, но они более дорогие.

AJAX

https://xmldatafeed.com/wp-content/uploads/2022/12/hqdefault.jpg

AJAX расшифровывается как Asynchronous JavaScript and XML. Это набор методов, используемых веб-сайтами на стороне клиента для создания асинхронных веб-приложений, которые являются отзывчивыми и не требуют обновления страницы для загрузки данных с сервера — благодаря JavaScript. Эта техника создала проблему для веб-парсеров, поскольку большинство популярных инструментов веб-парсинга, включая Scrapy, не обрабатывают JavaScript и, таким образом, не подходят для парсинга Ajaxified веб-сайтов. Это связано с тем, что Ajaxified веб-сайты загружают данные после загрузки HTML. Если вы отправите запрос с помощью Scrapy, и он понравится, вы получите в ответ HTML без необходимых данных. Для того чтобы парсить сайт с функцией AJAX, вам нужен способ выполнения и рендеринга JavaScript, чтобы парсить только после того, как необходимые данные будут добавлены на страницу. Для того чтобы спарсить данные с сайтов с поддержкой JavaScript, ваш браузер должен иметь возможность рендеринга. И безголовый браузер предоставит такую возможность. Безголовые браузеры — это браузеры без графического интерфейса пользователя, которые используются для автоматизированного тестирования. Примерами безголовых браузеров являются безголовый Chrome и PhantomJS. Чтобы автоматизировать любой из этих браузеров, вам понадобится инструмент автоматизации браузеров, такой как Selenium. С его помощью вы можете управлять браузерами, заставлять их заполнять формы, нажимать кнопки и выполнять фрагменты JavaScript.

Отпечатки пальцев в браузере

В основном существует 3 способа, с помощью которых веб-сайт отслеживает своих пользователей: через их IP, куки и отпечатки пальцев браузера. На всякий случай, если вы не знаете, сайт может однозначно идентифицировать ваш веб-парсер даже после смены IP путем получения информации о вашем браузере/парсере. Отпечатки пальцев браузера используют настройки и атрибуты браузера для идентификации уникальных устройств. В основном существует два типа фингерпринтинга — статический и динамический. Статический фингерпринтинг получает данные из заголовков запросов, а динамический фингерпринтинг использует JavaScript для получения информации о браузере, такой как шрифты, плагин, глубина цвета, размер экрана и многое другое. При использовании таких инструментов, как Scrapy или других инструментов, которые не отображают JavaScript, вы можете быть защищены от динамического отпечатка, поскольку они не отображают JavaScript. Однако некоторые сайты могут запретить запрос, если модуль дактилоскопии не выполняется, в этом случае необходимо использовать Selenium или другие инструменты автоматизации браузера. Для сайта, который активно занимается фингерпринтингом браузеров, вы должны предоставить ему отпечаток пальца, иначе вам будет отказано в доступе. Лучше всего предоставлять поддельные данные. Для заголовков запроса убедитесь, что ваш веб-парсер отправляет User-Agent одного из популярных браузеров. Он также должен отправить данные для Accept и Accept-Language, и их значения должны соответствовать значениям используемого вами User-Agent. Порядок отправляемых заголовков имеет важное значение. Для предотвращения динамического отпечатка браузера используйте Selenium для чередования различных браузеров. Однако избегайте использования PhantomJS, так как его можно обнаружить.

Каптча

Слово CAPTCHA — это аббревиатура, означающая полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей. Это тест, проводимый веб-сайтами, когда они подозревают, что трафик исходит от ботов. Обычно он требует распознать содержание изображения или группы изображений. Каптча появляется, когда сайт получает слишком много запросов, типичных для веб-краулеров, парсеров и других веб-ботов. Когда запросы вашего веб-парсера вызывают появление Captcha, вы должны решить эту проблему, чтобы продолжить парсинг; в противном случае вам придется использовать другие методы, которые прервут уже начатый процесс. Решение Captcha — сложная задача, поскольку для этого необходимы навыки компьютерного зрения, искусственного интеллекта и машинного обучения. На самом деле, некоторые Captcha оказались неразрешимыми с помощью автоматизированных средств. Когда речь идет о Captchas, лучше избегать их, чем решать. Как решить проблемы, связанные с Captcha? Одним из решений для предотвращения появления Captcha является использование девственных IP-адресов. Пулы резидентных IP являются одними из лучших, поскольку их невозможно обнаружить в качестве прокси-серверов, и поэтому они не оставляют места для подозрений. Увеличение промежутка времени между запросами и, как следствие, уменьшение количества запросов, отправляемых в течение минуты с одного IP, снизит вероятность появления Captcha. Даже после всех этих мер Captcha все равно может появиться. Когда она возникает, вам нужен решатель Captcha, чтобы решить проблему Captcha и обойти ее. 2Captcha — один из популярных вариантов на рынке. Он отлично работает, но это платный инструмент.

Войти

В Интернете есть два типа контента — те, которые можно парсить без входа в систему, и те, которые требуют входа. Соскабливание сайтов, требующих входа, не сильно отличается, но это может создать новые проблемы, и вы должны знать о них. Во-первых, как вы будете работать с логином и сессиями? Вы также не можете менять IP для каждого запроса при входе в аккаунт, так как это вызовет подозрения и Captcha на вас. Существует также ограничение на количество запросов, которые вы можете отправить с одного аккаунта, прежде чем аккаунт будет помечен как спам. Кроме того, в зависимости от того, насколько важны ваши учетные записи на целевых сайтах, мысль о том, что вы можете потерять их в процессе, может стать причиной для беспокойства. Правда в том, что соскабливание данных с сайтов, требующих входа, требует дополнительной осторожности по сравнению с сайтами, не требующими входа. Если вы не знаете, как войти в систему, ознакомьтесь с этой статьей в блоге на GitHub. Как правило, вам нужно войти в систему, а затем сохранить возвращенные файлы cookie. Сохранив файлы cookie, вы можете выполнять соскабливание, так как при этом вы останетесь под своим логином, и сессия будет сохранена. Для подобных сайтов важно знать, что лучше всего подходят прокси, которые иногда меняют IP. Кроме того, вам может понадобиться несколько учетных записей для ротации аккаунтов, но убедитесь, что вы сохранили их cookies и используете их соответствующим образом.

Медовые ловушки

Веб-сайты разработали технику, позволяющую обмануть веб-парсеры и краулеры, заставляя их посещать URL-адреса, не видимые обычным пользователям, но доступные автоматическим ботам. Эта техника известна как «ловушка медовой точки». Техника заключается в использовании атрибутов CSS для скрытия ссылок на странице, чтобы сделать их невидимыми для посетителей. Для этого используется либо visibility:hidden, либо display:none в стилизации ссылок. Некоторые делают цвет ссылки таким же, как и цвет фона страницы. В этом случае любое посещение ссылки будет автоматически помечено как трафик, исходящий от бота, и доступ к ней будет заблокирован. При написании кода для вашего веб-парсера убедитесь, что он проверяет ссылки, и они видны обычным пользователям, проверяя значения видимости и отображения. Кроме того, проверьте цвет ссылки и убедитесь, что он не совпадает с цветом фона страницы.

Часто задаваемые вопросы о блокировке запроса

  • Законен ли веб-парсинг? Тот факт, что веб-сайты внедряют методы борьбы с парсингом, означает, что они его не поддерживают. Однако, в целом, веб-парсинг не является незаконной задачей. Однако технические аспекты и то, чего вы хотите добиться, могут сделать его незаконным. Прочитайте этот блог LinkedIn, чтобы понять, как это может быть как законным, так и незаконным.
  • Может ли сайт быть успешным в предотвращении парсинга? Правда в том, что ни один сайт в Интернете не может полностью предотвратить парсинг. Единственное, что он может сделать, так это затруднить и сделать непривлекательным процесс соскабливания с его страниц. Однако при наличии правильного инструмента, технических навыков и опыта ни один сайт не сможет предотвратить парсинг.
  • Работает ли Captcha Solvers? Решатели Captcha работают с большим количеством капч. Однако некоторые капчи трудно взломать без вмешательства, поэтому инструменты для решения капч платят пользователям Интернета за помощь в решении этих капч.
  • Как сайты обнаруживают веб-парсеры? Если вам интересно, как сайты могут отличить трафик, исходящий от бота, от трафика, исходящего от человека, то вам нужно знать, что они различаются. Для обнаружения бот-трафика сайты используют комбинацию отслеживания IP-адресов, отпечатков браузера, файлов cookie и «медовых точек». Если вы сможете защититься от всего этого, ваш бот не будет обнаружен.
  • Использовать ли уже готовый бот или разработать его самостоятельно для задачи веб-парсинга? Если вы не в состоянии принять во внимание все то, о чем говорилось на этой странице, то лучше всего использовать уже существующий веб-парсер. Однако вы должны подумать о стоимости. Преимущество самостоятельной разработки бота в том, что вы можете добавить уникальные функции — и это экономит ваши деньги.

Заключение

В наше время создание веб-сайтов становится все сложнее. В отличие от прошлого, когда простой веб-парсер мог выполнить работу, теперь вам придется иметь дело с отслеживанием IP-адресов, отслеживанием куки, отпечатками пальцев браузера, Honeypots и Captchas. Если вы знаете, как обойти все эти проблемы, то вы сможете успешно спарсить сайт, не попав в черный список и не заблокировав запрос.