Обход капчи: способы определения, пригодные для SEO, и примеры кода для автоматического решения
Любой SEO-специалист хотя бы раз сталкивался с капчей, но мог даже не думать о том, что это и для чего она нужна.
В статье Александр Герасимчук и команда Топвизор-Журнальчика разобрали, что же все-таки это такое, какие виды капчи бывают и самое основное – какими методами ее можно обойти в SEO.
Капча и ее значение в контексте SEO
Слово «капча» всходит к британскому captcha, что расшифровывается как Completely Automated Public Turing test to tell Computers and Humans Apart, а дословно переводится как «стопроцентно автоматический общественный тест Тьюринга для различения компов и людей».
Этот тест создавался для защиты сайтов от массовых атак, мусора, парсинга инфы и так дальше, другими словами для того, чтоб усложнить доступ к нужным данным для соперников, автоматизаторов, SEO-специалистов, рекламщиков. Но сейчас существует масса методов, которые разрешают обойти капчу.

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

Уровень защиты веб-сайта при помощи капчи
По сути ситуация не так однозначна, как может показаться. Защитить веб-сайт от парсинга данных быть может трудно, в особенности если это не коммерческий проект, а какой-либо сайт-хомячок. Другое дело большой портал, который приносит многомиллионную прибыль, – согласитесь, есть повод задуматься о настоящей защите.
К примеру, Amazon – эти ребята знают толк в методах защиты веб-сайта. Кроме того, что на веб-сайте есть три вида капчи, любая из которых возникает в различных вариантах, обладатели к тому же рандомно меняют дизайн, чтоб автоматизаторы и парсеры не могли делать свои деяния старенькыми способами. Изменяется дизайн, потому изменяется и скрипт – таковой вот круговорот.
Если с Amazon понятно, они защищают свою инфраструктуру, что с наиболее маленькими вебмастерами? Они тоже соображают, что ставить на веб-сайт труднопроходимую капчу не весьма отменная мысль, так как сиим они делают доп трудности для настоящих гостей. Чем труднее капча, тем больше шансов, что юзер просто уйдет к сопернику по поисковой выдаче.
Потому обладатели веб-сайтов стараются не жестить с капчей и соблюдать баланс. Оставлять веб-сайт совершенно без защиты удивительно, потому что туда начнут ломиться уж весьма обыкновенные боты, которые не могут обходить капчу, но могут совершать массовые деяния. Сейчас обладатели веб-сайтов выбирают всепригодные решения, к примеру reCAPTCHA либо hCaptcha: и веб-сайт под защитой, и юзеры не очень напрягаются.
Наиболее сложные капчи употребляют, когда на веб-сайте возникает поток роботов, но это уже тема отдельной статьи.
Для чего нужен обход капчи
Есть несколько ситуаций, когда SEO-специалист сталкивается с капчей:
-
работа с поисковыми машинами – к примеру, съем позиций, парсинг главных слов;
-
работа с веб-сайтами соперников – к примеру, анализ ресурса, парсинг контента;
-
автоматизация рутинных задач.
В других вариантах обход капчи делает сервис, которым он пользуется. Все, что требуется от спеца, – это подставить ключ API от сервиса определения капчи в необходимое поле либо решить ее вручную.
В 95% вариантах SEO-специалист обходит капчу при работе с поисковыми машинами Yandex, Гугл и, может, Bing либо Rambler.
Главные способы обхода капчи
Сейчас перейдем к наиболее прикладной стороне вопросца: разберем способы обхода капчи, которые можно применять SEO-специалисту, их вероятные достоинства и недочеты.
В данном разделе мы будем гласить лишь о способах, которые требуют наиболее глубочайшего погружения спеца в тему, чем просто внедрение ключа API на главной страничке сервиса. Уверен, разобраться в этом вопросце можно.
Через автоматические сервисы
Самый обычной метод обхода хоть какой капчи при парсинге поисковой машины – внедрение ресурсов постороннего сервиса. Таковых сервисов на рынке большущее количество, более пользующиеся популярностью из их – 2Captcha, ruCaptcha, SolveCaptcha.
Все сервисы работают по обычной схеме: принимают от юзера капчу, которую ему нужно решить, решают ее и посылают назад юзеру.
Если детально разбираться в документации сервисов, можно найти, что есть возможность платить лишь за решенные капчи, а за те, которые не решены, не платить. Это работает, если верно настроить все передаваемые характеристики.
Просто сказать – передать капчу, как это создать? Даже для новенького в работе с кодом это не самый непростой вопросец.
Принципиально осознать, что неважно какая капча имеет определенный набор характеристик, без которых ее нереально корректно решить либо корректно подставить решение опосля обработки обслуживанием.
Задачки спеца:
-
обусловиться с видом капчи;
-
изучить документацию сервиса;
-
найти неотклонимые характеристики, которые необходимо выслать в сервис определения капчи;
-
написать код и вставить его в структуру собственного скрипта либо программки.
Пример кода для решения reCaptcha V2 на Python:
|
|
В данном примере нужно отыскать на страничке один параметр – в коде он именуется site_key, а на страничке с капчей, обычно, указан sitekey. Этот параметр вкупе с URL капчи и ключом API от сервиса 2Сaptcha необходимо выслать на сервер, а когда получите токен с решением, нужно подставить его в капчу. Опосля этого можно продолжать работу с веб-сайтом.
В хоть какой капче, которая решается токеном, код будет приблизительно таковым же – отличие только в наборе передаваемых характеристик, а в неких (типа капчи Amazon) добавляется к тому же наибольшее время решения.
Плюсы: простота опции, скорость определения капчи.
Недочеты: способ платный, потому что употребляется посторонний сервис.
С внедрением прокси и ротации IP-адресов
2-ой вариант обойти капчу для решения SEO задач основывается на использовании огромного количества прокси, которые изменяются или через определенное время, или при возникновении капчи либо ошибки, которую веб-сайт может выдавать при нередких запросах.
Используя ротацию прокси, мы всякий раз обращаемся к источнику парсинга с новеньким прокси – как новенькая личность, потому источник не считает наши деяния подозрительными (некое время).
Для реализации способа будет нужно пул IP-адресов, что быть может не дешевле, а время от времени даже дороже, чем способ с обходом капчи через посторонний сервис.
Можно применять резидентные прокси от 2Captcha с ротацией – тогда не нужен пул IP-адресов, довольно будет верно настроить ротации. Время от времени можно применять мобильные прокси – они будут дороже резидентных, да и свойство будет кратно выше. В общем, на хоть какой бюджет и требования есть свое решение.
Вот вам наглядный пример кода, который не будет работать автономно: будет нужно встроить его в скрипт:
В коде приведены примеры для использования резидентных прокси 2Сaptcha.
Неплохой пример – сервис LinkedIn: у их настроена система таковым образом, что трижды с 1-го IP-адреса можно авторизоваться без ввода капчи, а на 3-ий раз возникает капча. Зная эту изюминка, необходимо настроить ротацию прокси и ликовать, что взломали систему… Пока не пофиксят, естественно.
Достоинства: решение не просит интеграции посторониих сервисов, если у вас есть свой пул IP-адресов.
Недочеты: это нестабильное решение по сопоставлению с первым методом, а при использовании высококачественных прокси быть может дороже, чем обход капчи.
При помощи эмуляторов браузера
Естественно, внедрение одной только ротации прокси без доп усилий будет недостающим для обхода капчи в современных критериях, потому 3-ий способ плавненько вытекает из второго и связывает их, что наращивает длительность жизни.
Внедрение headless-браузеров не какая-то престижная фишка: используют их уже издавна, и они помогают имитировать деяния юзеров, маскируя роботов под настоящих людей. Другими словами SEO-специалист до крайнего делает вид, что он жив человек и что он поглощает информацию на страничке, попутно решая свои задачки, а когда его обнаруживают, меняет прокси и начинает все поновой.
Таковым нехитрым методом при наличии достаточного пула IP-адресов выходит парсить большие проекты.
Но еще одна увлекательная изюминка состоит в том, что сейчас необходимо не попросту имитировать поведение живого человека, да и скрывать от ресурса, что ты используешь headless-браузер. Какие-то игры шпионов получаются, а не решение SEO-задач продвинутым методом.
Пример обычного кода для работы с headless-браузером:
|
|
Несколько объяснений относительно кода:
Stealth-плагин: puppeteer-extra-plugin-stealth помогает скрыть признаки headless-режима, такие как navigator.webdriver, которые веб-сайты употребляют для обнаружения автоматических скриптов.
Опции User-Agent и заголовков: установка User-Agent и размеров окна браузера (viewport) делает браузер схожим на обычный.
Задержки меж действиями: внедрение задержек (waitForTimeout, type и delay) помогает избежать стремительных действий, которые могут показаться автоматическими.
Скроллинг странички: прокрутка (window.scrollBy) делает иллюзию взаимодействия с контентом.
Изменение прокси: для ротации IP можно запускать Puppeteer через разные прокси, чтоб любой новейший сеанс начинался с другого адреса – это понижает возможность возникновения капчи.
Достоинства: дешевле по сопоставлению с прошлыми способами.
Недочеты: headless-браузеры могут быть неэффективны при парсинге отлично защищенных веб-сайтов (к таковым относятся поисковые машины).
Эмуляторы браузеров используются в самых сложных вариантах, когда обычным запросом получить информацию не удается никак. А в качестве побочного эффекта они разрешают решить капчу при помощи кликов, как настоящий юзер.
Наиболее сложные способы, включающие машинное обучение (педагогический процесс, в результате которого учащиеся под руководством учителя овладевают знаниями, умениями и навыками)
Чтоб минимизировать растраты на определение капчи, можно пользоваться машинным обучением – это ручная тренировка системы по распознаванию капчи. Можно применять готовые решения, к примеру Tesseract – проще говоря, приблизительно этот же механизм, но уже натренированный.
В обоих вариантах таковая система не сумеет решить сложную капчу, этот метод подойдет лишь для определения текстовой капчи либо систематизации (разметке) изображений либо чеков.
Где в SEO может пригодиться систематизация изображений, я не понимаю (придумайте чего-нибудть сами), но это полностью рабочий вариант для легких капч. Это безвозмездно и это отлично.
Пример кода подобрать трудно, так как это довольно нишевая тема и всепригодного кода для различных вариантов нет.
Достоинства: безвозмездно и отлично.
Недочеты: не подступает для сложных капч.
Какой способ избрать
Если есть мало времени и желание покопаться в коде, 1-ый и 2-ой методы в комплексе с третьим – ваш вариант. Если охото все очень упростить, отыскиваете сервисы, которые предоставляют инструменты для работы. Но советовать что-то конкретное не буду, потому что это тема отдельной статьи.
Безкапчевого для вас доступа!
Оригинал статьи на SEOnews