темный логотип proxyscrape

Как обойти CAPTCHA при веб-скреппинге? - 5 простых шагов

Как это сделать, Скрапбукинг, Янв-03-20235 минут чтения

Когда вы скребёте данные с крупных сайтов, вам, скорее всего, не приходилось сталкиваться с 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 с размытым и искаженным текстом.

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

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

Флажок

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

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

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

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

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

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

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

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

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

В противном случае придется вернуться к одному из двух ранее описанных методов.

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

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

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

Что касается ReCAPTCHA, то не совсем понятно, что их вызывает. Однако общие причины - движения мыши, история просмотров и отслеживание файлов 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-свойства элемента видны.
Word/Match CAPTCHA - это CAPTCHA на математические уравнения, например, решение "3+7". Также могут быть и словесные головоломки.
Вход через социальные сети - некоторые сайты требуют, чтобы вы входили в систему, например, через учетную запись Facebook. Однако они не пользуются популярностью, поскольку большинство администраторов знают, что люди не захотят входить в систему с помощью своих аккаунтов в социальных сетях.
Отслеживание времени -эти CAPTCHA отслеживают, как быстро вы выполняете определенное действие, например, заполняете форму, чтобы определить, кто это - человек или бот.

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

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

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

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

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

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

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

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

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

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

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

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

Избегайте медовых точек

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

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

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

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

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

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

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

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

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

Заключение

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

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