Библиотека предназначена для разработчиков ПО и служит для облегчения работы с API сервиса RuCaptcha.
Присутствуют примеры работы с библиотекой.
По всем вопросам можете писать в Telegram чат.
Либо на email — [email protected]
Используется Python версии 3.6+.
pip install python-rucaptcha
git clone https://github.com/AndreiDrang/python-rucaptcha.git
cd python-rucaptcha
python setup.py install
v.4.0 — Переработка классов и методов. Добавление TikTok
captcha. Добавление наследований и сериализаторов. Callback-сервер
— deprecated.
v.4.0 — Reworking of classes and methods. Adding TikTok
captcha. Adding inheritances and serializers. Callback-server
— deprecated.
v.4.2 — Добавлена Yandex Smart Captcha.
v.4.2 — Added Yandex Smart Captcha.
Для тестирования различных типов капчи предоставляется специальный сайт, на котором собраны все имеющиеся типы капчи, с удобной системой тестирования ваших скриптов.
To test various types of captcha, a special site is provided, which contains all available types of captcha, with a convenient system for testing your scripts.
This version
4.2
4.1
4. 0a0 pre-release
3.0.1
3.0
2. 6.5a0 pre-release
2.6.4
2.6.3
2. 6.2
2.6.1
2.6
2.5.4
2. 5.3
2.5.2
2.5.1
2.5
2. 4
2.3
2.2.1
1.6.5
1. 6.4
1.6.3
1.6.2
1.0.0a0 pre-release
Download the file for your platform. If you’re not sure which to choose, learn more about installing packages.
python-rucaptcha-4.2.tar.gz (15.0 kB view hashes)
Uploaded source
python_rucaptcha-4.2-py3-none-any.whl (22.9 kB view hashes)
Uploaded py3
Close
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf7ca96dfc9617b642df90e4352d8a877ed1c9815dd85dd94b9f25b71eae7665 | |
MD5 | fed5ae21e10e63e29c19c7183e3d40b6 | |
BLAKE2-256 | a83ce8301812be4b56639ad196a76d261a231ea54f80f72ca3d5a1c930ea412b |
Close
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b9cc4fac55c8c8fbc4887407b2822ee2bbfc40786c94b3cc78b52d9c5a66ce1 | |
MD5 | 674567381705d992427fe83551f4d3fd | |
BLAKE2-256 | dfddd432a749ec2db6011ec51c949ee26865acdeec311feba46df453c32496fd |
НА ПРАВАХ РЕКЛАМЫ
Привет! Думаю, что тебя раздражает каждый раз вводить капчу при входе на любимый сайт. И было бы логично предположить, что существует сервис для решения этой проблемы. И действительно, такой есть.
Согласно описанию на сайте:
RuCaptcha.com — антикапча-сервис ручного распознавания изображений, здесь встречаются те, кому нужно в режиме реального времени распознать текст с отсканированных документов, бланков, капч и те, кто хочет заработать на вводе текста с экрана.
В системе работают русскоязычные и англоязычные работники.
Cервис антикапчи RuCaptcha.com не только поддерживает стандартное API на равне с сервисами pixodrom, antigate, anti-captcha и других, но и предоставляет расширенный фукнционал пополняющийся под каждый виток борьбы с автоматизацией. API RuCaptcha поддерживает решение ReCaptcha v2 (где нужно кликнуть по картинкам), ClickCaptcha (где нужно кликнуть в определённые точки) и Rotatecaptcha (FunCaptcha и другие капчи, которые нужно крутить).
Что-ж, неплохо!
Данный способ позволяет пройти капчу без эмуляции браузера и отправки картинок, так же этот способ даёт 100% прохождение капчи.
Где, какие данные брать и куда вставлять? Посмотри HTML-код страницы(нажми F12), где ты встретили капчу:
найди параметр data-sitekey= Это ключ сайта, он постоянен и уникален для каждого сайта (если администратор сайта не поменяет его вручную)
найди форму для текста
<textarea name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 40px; border: 1px solid #c1c1c1; margin: 10px 25px; padding: 0px; resize: none; "></textarea>
Сюда тебе нужно будет вставить ответ от сервиса.
Но всё это не “торт”. Настоящие программисты всё автоматизируют. Потому давайте напишем программу антикапчу на python, используя соответствующую библиотеку.
Установить модуль можно следующими методами:
pip3 install python-rucaptcha
Хотя на страничке github указан pip, у меня он не нашёл соответствующий пакет. Потому я всё сделал через pip3(видимо разработчики решили использовать актуальную ветку python, а не устаревшую).
git clone https://github.com/AndreiDrang/python-rucaptcha.git cd python-rucaptcha python setup.py install
Как вариант можно воспользоваться Callback API. Однако в таком случае тесты проводяться на локальном сервере, эмулируя POST-запросы от RuCaptcha при помощи локального клиента. Принцип работы ты можешь увидеть на схеме ниже
Однако этот способ не рационален, т.к для решения небольшой проблемы мы поднимаем сервер, пускай и небольшой.
Всё можно сделать гораздо проще:
from python_rucaptcha import ImageCaptcha # Введите ключ от сервиса RuCaptcha, из своего аккаунта RUCAPTCHA_KEY = "" # Ссылка на изображения для расшифровки image_link = "" # Возвращается JSON содержащий информацию для решения капчи user_answer = ImageCaptcha. ImageCaptcha(rucaptcha_key=RUCAPTCHA_KEY).captcha_handler(captcha_link=image_link) if not user_answer['error']: # решение капчи print(user_answer['captchaSolve']) print(user_answer['taskId']) elif user_answer['error']: # Тело ошибки, если есть print(user_answer['errorBody']['text']) print(user_answer['errorBody']['id'])
from python_rucaptcha import KeyCaptcha # Введите ключ от сервиса RuCaptcha, из своего аккаунта RUCAPTCHA_KEY = '' answer = KeyCaptcha.KeyCaptcha(rucaptcha_key=RUCAPTCHA_KEY) \ .captcha_handler(key_params = { 's_s_c_user_id':15, 's_s_c_session_id':'', 's_s_c_web_server_sign':'', 's_s_c_web_server_sign2':'', 'pageurl':'https://www.keycaptcha.com/signup/' } ) # капча решена верно, ошибка = 0 if not answer['error']: # решение капчи print(answer['captchaSolve']) print(answer['taskId']) # во время решения капчи возникли ошибки, ошибка = 1 elif answer['error']: # Тело ошибки, если есть print(answer['errorBody'])
from python_rucaptcha import ReCaptchaV2 # Введите ключ от сервиса RuCaptcha, из своего аккаунта RUCAPTCHA_KEY = "" # G-ReCaptcha ключ сайта SITE_KEY = "" # Ссылка на страницу с капчей PAGE_URL = "" # Возвращается JSON содержащий информацию для решения капчи user_answer = ReCaptchaV2.ReCaptchaV2(rucaptcha_key=RUCAPTCHA_KEY).captcha_handler(site_key=SITE_KEY, page_url=PAGE_URL) if not user_answer['error']: # решение капчи print(user_answer['captchaSolve']) print(user_answer['taskId']) elif user_answer['error']: # Тело ошибки, если есть print(user_answer['errorBody']['text']) print(user_answer['errorBody']['id'])
До этого момента я не показывал работу на реальных примерах. Т.к у всех решений схожая структура: вы вводите URL, ключ, который вы получили на сайте. Я решил показать решение реальной задачи на капче третей версии:
from python_rucaptcha import ReCaptchaV3 # Введите ключ от сервиса RuCaptcha, из своего аккаунта RUCAPTCHA_KEY = "" # G-ReCaptcha ключ сайта SITE_KEY = "" # Ссылка на страницу с капчёй PAGE_URL = "" # Значение параметра action, которые вы нашли в коде сайта ACTION = 'verify' # Требуемое значение рейтинга работника,от 0. 1(робот) до 0.9(человек) MIN_SCORE = 0.4 # Возвращается JSON содержащий информацию для решения капчи user_answer = ReCaptchaV3.ReCaptchaV3(rucaptcha_key=RUCAPTCHA_KEY, action = ACTION, min_score = MIN_SCORE).captcha_handler(site_key=SITE_KEY, page_url=PAGE_URL) if not user_answer['error']: # решение капчи print(user_answer['captchaSolve']) print(user_answer['taskId']) print(user_answer['user_check']) print(user_answer['user_score']) elif user_answer['error']: # Тело ошибки, если есть print(user_answer['errorBody']['text']) print(user_answer['errorBody']['id'])
В качестве тестового полигона будем использовать следующий сайт.
Подставим необходимые данные в наш код:
Задача решена:
Отдельно стоит отметить, что стоимость распознавания очень низка, от $0,0005 за одну капчу. Для удобства, все цены указываются за распознавание 1000 капч, но биллинг в системе происходит отдельно по каждой капче. Разные типы капч распознаются по разной цене.
Простые капчи это те, где нужно переписать текст с изображения. Цена зависит от нагрузки на сервис. Если нагрузка маленькая, то цена низкая. Чем выше нагрузка на сервис, тем выше цена. В статистике можно узнать среднюю цену за каждый час за последние дни.
Большие капчи это те, у которых сумма высоты и ширины превышает 400px. Цена на них $1 в любое время, независимо от нагрузки на сервер. ReCaptcha v2 images — картинки от рекапчи, где нужно выбрать правильный квадрат.
Действительно недорого, даже не смотря на отсутсвие скидок, промокодов и бонусов. Однако если ты будешь тратить больше $2000 ежедневно в течении месяца и при этом не являясь рефералом кого-либо, ты можешь написать в раздел “Support” и сервис сделает для тебя скидку.
GitLab использует reCAPTCHA от Google для защиты от спама и злоупотреблений. GitLab отображает форму CAPTCHA на странице регистрации чтобы подтвердить, что реальный пользователь, а не бот, пытается создать учетную запись.
Чтобы использовать reCAPTCHA, сначала создайте сайт и закрытый ключ.
admin/application_settings/reporting
). recaptcha_html
: app/services/spam/spam_verdict_service.rb
. #execute
на return CONDITIONAL_ALLOW
.Убедитесь, что вы просматриваете выпуск в общедоступном проекте. Если вы работаете над проблемой, проблема является общедоступной.
Вы можете включить reCAPTCHA для входа пользователей через пароль в пользовательском интерфейсе
или установив HTTP-заголовок X-GitLab-Show-Login-Captcha
.
Например, в NGINX это можно сделать через proxy_set_header
переменная конфигурации:
proxy_set_header X-GitLab-Show-Login-Captcha 1;
В Omnibus GitLab это можно настроить через /etc/gitlab/gitlab.rb
:
nginx['proxy_set_headers'] = { 'X-GitLab-Show-Login-Captcha' => '1' }
Если вы не нашли то, что искали,
поищите в документах.
Если вам нужна помощь с чем-то конкретным и вам нужна поддержка сообщества,
сообщение на форуме GitLab.
При проблемах с настройкой или использованием этой функции (в зависимости от вашего GitLab
подписка).
Запрос поддержки
Включите JavaScript для просмотра комментарии на базе Disqus.Если вы хотите защитить свой сайт от спам-ботов и других вредоносных программ, то использование reCaptcha должно быть на первом месте в вашем списке безопасности. reCaptcha работает, чтобы отличать ботов от людей. Как вы выбираете между использованием reCaptcha v2 и reCaptcha v3 для защиты ваших пользователей?
В этой статье мы рассмотрим основные причины для понимания различий между reCaptcha v2 и reCaptcha v3. Мы опишем каждую версию, а затем обсудим рекомендации о том, когда использовать одну версию вместо другой.
Если вы не знакомы с reCaptcha, у вас может возникнуть частый вопрос: «Почему я должен решить использовать конкретную версию? Почему бы не использовать последнюю версию?»
В некоторых приложениях, таких как weForms, вам часто предоставляется возможность использовать reCaptcha для интеграции в ваше приложение, форму или веб-сайт. На скриншоте ниже видно, что у вас есть выбор версии reCaptcha в настройках для weForms.
Существует различий в версиях, которые могут повлиять на то, что вы решите использовать. Понимание этих различий в версиях также поможет вам решить, почему лучше использовать одну версию, а не другую.
Ваше понимание вашего веб-сайта или онлайн-приложения, а также ваш опыт и роль в его разработке или обслуживании также будут решающим фактором при выборе версии.
В этой статье описываются различия между версиями и вы можете решить, какую версию использовать при ее добавлении на свой веб-сайт или в приложение.
reCaptcha v2 и reCaptcha v3 в Captcha в конечном счете направлены на предоставление одной и той же услуги вашему веб-приложению — защиту от ботов, которые могут злоупотреблять вашим сайтом, позволяя посетителям проходить через него. В версии 2 доступны три варианта.
Эта версия требует пользователь должен нажать на флажок. Когда флажок установлен, это подтверждает, что пользователь является человеком, или вызывает его с помощью reCAPTCHA для проверки. Этот вариант самый простой в использовании, так как для флажка требуется всего две строки HTML.
Эта reCAPTCHA не требует взаимодействия со зрителем. Он вызывается, когда пользователь нажимает на существующую кнопку на сайте. Его также можно вызвать вызовом Javascript. CAPTCHA вызывается только тогда, когда на сайт попадает очень подозрительный трафик. Этот уровень срабатывания можно сделать более строгим, настроив параметры безопасности сайта.
Код для вызова виджета reCaptcha можно найти на странице разработчика Google. Код включает в себя как возможность автоматического рендеринга, так и вызов через Javascript.
Версия reCaptcha v2 для Android работает с использованием ключа сайта и токена reCaptcha с API сервиса SafetyNet. Сервер вашего Android-приложения передает секретный ключ серверу SafetyNet для безопасной проверки. Когда задача завершена, токен reCaptcha генерируется и отправляется с вашего сервера через сервер Safetynet, а затем ваше приложение может ответить приложению Android уведомлением об успешном (или неудачном) выполнении.
Проще говоря, reCaptcha выдаст капчу, если предполагается, что взаимодействие с вашим приложением совершает бот, а не человек. Если CAPTCHA решена, приложение разрешит транзакцию.
Были обновления API, и вам следует проверить страницу разработчика, чтобы убедиться, что вы используете самый последний код, прежде чем использовать его в своем приложении.
Версия 3 reCaptcha работает, просматривая трафик на вашем сайте, а затем при необходимости предпринимая соответствующие действия. Он генерирует оценку, которая позволяет reCaptcha определить, являются ли взаимодействия в трафике вашего сайта оскорбительными или нет. Как правило, проверка reCaptcha будет выполняться для форм и действий на вашем сайте, чтобы собрать соответствующие данные.
Примеры областей на вашем веб-сайте, где reCaptcha может генерировать оценки, включают:
reCaptcha v3 «узнает» о трафике на вашем сайте, анализируя и подсчет очков. Обратите внимание, что reCaptcha v3 не останавливает трафик/взаимодействия на вашем сайте. Вместо этого он предпринимает действия, основанные на выявленном поведении. Примеры действий, основанных на поведении, включают требование проверки электронной почты для подозрительных входов в систему, автоматическую отправку спам-сообщений на модерацию или выявление и фильтрацию поддельных запросов на добавление в друзья.
Когда вы запускаете свой сайт, вам нужно будет определить пороги оценки, в соответствии с которыми будет действовать reCaptcha, просматривая трафик вашего сайта через консоль администратора Google для reCaptcha.
Пример анализа трафикаreCaptcha v3 работает лучше всего, когда она может сравнивать законный трафик/взаимодействия с действиями, которые подозрительны или вредны для вашего сайта. Он делает это, собирая данные в разных областях вашего сайта и используя ваш пороговый балл для оценки взаимодействий.
Например, код reCaptcha можно добавить на все основные страницы сайта электронной коммерции. Затем вы можете просмотреть трафик, проанализированный reCaptcha, а затем настроить порог по мере необходимости в областях вашего сайта, чтобы вы могли убедиться, что сайт не получает неправомерный трафик.
Чтобы узнать больше о реализации reCaptcha v3, см. руководство по reCaptcha v3 на сайте Google для разработчиков.
Основываясь на определениях двух версий, вы можете видеть, что обе они имеют преимущества для использования. Хотя версия 3 является самой новой версией, она также требует большей части административной работы, связанной с ее использованием. Версия 2 предоставляет несколько разных версий, которые можно использовать, одна из которых предназначена для Android.
Выберите версию reCaptcha в зависимости от вашего опыта и потребностей вашего веб-сайта/приложения.
Если вам нужно очень быстрое и простое решение для защиты страницы вашего сайта, я бы порекомендовал использовать reCaptcha v2 — флажок «Я не робот». Он имеет всего 2 строки HTML-кода, чтобы добавить его на свою страницу.
Если у вас нет сложного веб-сайта с большим количеством взаимодействий с пользователем, и у вас нет разработчика или администратора, который поможет вам управлять вашим веб-сайтом, вы можете подумать об использовании reCaptcha v2 — «Невидимый флажок». Он будет не таким эффективным, как версия 3, в отделении ботов от людей, но его можно настроить, чтобы он был более строгим, если вы обнаружите, что ваш сайт атакуют боты.
reCaptcha v3 — это последняя версия приложения безопасности от Google. Он позволяет трафику попасть на ваш сайт, но, как и версия 2 (невидимая reCaptcha), работает в фоновом режиме. Его основное отличие заключается в том, что он анализирует трафик на ваши веб-страницы, а затем предпринимает действия на основе пороговых значений, которые вы устанавливаете через консоль администратора Google для reCaptcha.
Об авторе