post-title

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

Обход CAPTCHA для веб-скраппинга

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

Что такое CAPTCHA?

CAPTCHA расшифровывается как Completely Automated Public Turing Test to tell Computers and Humans Apart. Довольно длинная аббревиатура, не так ли? Теперь вам, возможно, интересно, что означает последняя часть этой аббревиатуры, тест Тьюринга - ну, это простой тест для определения того, человек или бот взаимодействует с веб-страницей или веб-сервером.

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

Давайте узнаем, как CAPTCHA отличают людей от ботов.

Как действуют CAPTCHA?

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

Традиционные CAPTCHA включают изображение с растянутыми или размытыми буквами, цифрами или и тем, и другим в поле с цветом фона или прозрачным фоном. Затем необходимо определить символы и ввести их в следующее текстовое поле. Этот процесс идентификации символов проще для человека, но несколько сложен для бота.

Идея размытия или искажения текста CAPTCHA заключается в том, чтобы боту было сложнее распознать символы. В отличие от них, люди могут интерпретировать и перехватывать символы в различных форматах, таких как различные шрифты, почерк и т.д. Тем не менее, не каждый человек может решить CAPTCHA с первой попытки. Согласно исследованиям, 8% пользователей ошибаются с первой попытки, а 29% терпят неудачу, если CAPTCHA чувствительны к регистру.

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

Что такое ReCAPTCHA?

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

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

 Обход CAPTCHA и ReCAPTCHA

Как работают ReCAPTCHA?

Существует три основных типа тестов ReCAPTCHA, позволяющих проверить, являетесь ли вы человеком или нет:

Флажок

Это ReCAPTCHA, которые просят пользователей поставить галочку в чекбоксе "Я не робот", как на изображении выше. Хотя невооруженным глазом может показаться, что даже бот может пройти этот тест, учитывается несколько факторов:

  • Этот тест исследует движения мыши пользователя при приближении к флажку.
  • Движения мыши пользователя не являются прямыми, включая большинство прямых движений мыши. Боту сложно имитировать такое же поведение.
  • Наконец, ReCAPTCHA проверяет файлы cookie, которые хранит ваш браузер.

Если ReCAPTCHA не сможет подтвердить, что вы человек, он предложит вам другую задачу.

Распознавание образов

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

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

Отсутствие взаимодействия

Знаете ли вы, что ReCAPTCHA может проверить, являетесь ли вы человеком или нет, без использования флажков или какого-либо взаимодействия с пользователем?

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

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

Что запускает CAPTCHA и ReCAPTCHA?

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

Тогда некоторые веб-сайты будут автоматически устанавливать CAPTCHA для защиты своих систем.

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

Что нужно знать об обходе CAPTCHA при веб-скреппинге

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

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

Отправка слишком большого количества запросов на целевой веб-сайт

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

HTTP-заголовки

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

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

IP-адрес

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

Чтобы решить эту проблему, вы можете использовать прокси-сервер, поскольку он маскирует ваш IP-адрес. 

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

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

Другие типы CAPTCHA

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

Honeypots-Honeypot - это тип CAPTCHA, заключенный в поле HTML-формы или ссылки, но его видимость скрыта с помощью CSS. Поэтому при взаимодействии с ним бот неизбежно сообщает, что он бот. Поэтому, прежде чем заставить бота соскребать содержимое, убедитесь, что CSS-свойства элемента видны.

Обход капчи

CAPTCHA "Слово/Соответствие" - это CAPTCHA в математических уравнениях, например, решение "3+7". Также могут быть словесные головоломки, которые нужно решить.

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

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

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

Как обойти CAPTCAs - 5 простых шагов

Ротация прокси-серверов и использование качественных IP-адресов

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

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

Поворот агентов пользователя

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

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

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

Услуги по решению проблемы CAPTCHA

Более простым и низкотехничным методом решения CAPTCHA является использование сервиса решения CAPTCHA. Они используют искусственный интеллект (ИИ), машинное обучение (МИ) и совокупность других технологий для решения CAPTCHA.

Одними из наиболее известных решателей CAPTCHA, существующих в настоящее время в отрасли, являются Capsolver и Anti-CAPTCHA.

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

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

Избегайте Honeypots

Honeypots - это скрытые элементы на веб-странице, которые эксперты по безопасности используют для отлова ботов или злоумышленников. Хотя браузер отображает HTML, свойства CSS установлены на скрытие. Однако, в отличие от людей, код "медового горшка" будет виден ботам, когда они будут перебирать данные. В результате они попадают в ловушку, расставленную "медовым горшком".

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

Часто задаваемые вопросы

1. Что означает обход CAPTCHA для веб-скрапинга?

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

2. Что такое ReCaptcha?

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

3. Как прокси поможет пользователям обойти капчу?

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

Заключение

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

Мы надеемся, что вы воспользуетесь всеми приемами, рассмотренными в этой статье.