🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis β†’
Socket
Book a DemoInstallSign in
Socket

python-rucaptcha-session-patch

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

python-rucaptcha-session-patch

Python 3.6+ RuCaptcha library with AIO module.

pipPyPI
Version
3.0
Maintainers
1

python-rucaptcha

PyPI version Build Status Maintainability Codacy Badge Callback_Server_Status Run

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Ρ€Π°Π·Ρ€Π°Π±Π°ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ПО ΠΈ слуТит для облСгчСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с API сСрвиса RuCaptcha.

ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Python вСрсии 3.6+.

How to install? Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ?

pip

pip install python-rucaptcha

Source

git clone https://github.com/AndreiDrang/python-rucaptcha.git
cd python-rucaptcha
python setup.py install

По всСм вопросам ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Telegram Ρ‡Π°Ρ‚.

ПослСдниС обновлСния

v.2.0 - ОбновлСниС JSON ΠΎΡ‚Π²Π΅Ρ‚Π°, ΠΊΠ»ΡŽΡ‡Π° с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ± ошибкС(созданиС собствСнного списка ошибок с ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ id). Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² errorBody Π΄Π²ΡƒΡ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ: text(тСкст ошибки) ΠΈ id(ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ ошибки). Π’Π°Π±Π»ΠΈΡ†Π° с ошибками ΠΈ ΠΈΡ… Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ. Π—Π°ΠΌΠ΅Π½Π° errorId ΠΈ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ 1/0 Π½Π° error ΠΈ логичСскиС True(Π΅ΡΡ‚ΡŒ ошибка)/False(Π½Π΅Ρ‚ ошибки).

v.2.2.1 - ВынСсСниС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΏΡ‡ΠΈ (ΠΊΠ°ΠΊ синхронного Ρ‚Π°ΠΊ ΠΈ асинхронного) Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ».

v.2.3 - Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ использования Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²(для хранСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ) ΠΈ Π·Π°ΠΌΠ΅Π½Π° ΠΈΡ… Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

v.2.4 - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ callback(pingback) ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со всСми Π²ΠΈΠ΄Π°ΠΌΠΈ ΠΊΠ°ΠΏΡ‡. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ модуля для получСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΏΡ‡ΠΈ с сСрвСра - CallbackClient. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ асинхронный сСрвСр(Π½Π° aiohttp) для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ POST-запросов ΠΎΡ‚ RuCaptcha, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ эмулятор RuCaptcha, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ высылаСт Ρ‚Π΅ ΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‡Ρ‚ΠΎ ΠΈ настоящий сСрвСр(ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ для тСстирования ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΏΡ‡ΠΈ).

v.2.5 - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ReCaptcha v3. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ модуля MediaCaptcha ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

v.2.5.3 - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ contextmanager ΠΊΠΎ всСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΏΡ‡ΠΈ.

v.2.5.4 - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ GeeTest ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π‘ синхронным ΠΈ асинхронным исполнСниСм.

v.2.6.3 - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Distil ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π‘ синхронным ΠΈ асинхронным исполнСниСм.

v.2.6.4 - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ HCaptcha ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π‘ синхронным ΠΈ асинхронным исполнСниСм.

v.2.6.5 - Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ CapyPuzzle ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π‘ синхронным ΠΈ асинхронным исполнСниСм.

v.3.0 - Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ кастомных ошибиок ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° тСкста ΠΎ Π½ΠΈΡ….

  • Π—Π°ΠΌΠ΅Π½Π° структуры:
    {
      "errorBody":
        {
          "text": "some text",
          "id": 1
        }
    }
    
  • На структуру:
    {
      "errorBody": "ERROR_NAME"
    }
    

Π‘ΡƒΠ΄ΡƒΡ‰ΠΈΠ΅ обновлСния

v.4.0 - ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° классов ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ наслСдований ΠΈ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ.

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

0.Π Π°Π±ΠΎΡ‚Π° Ρ‡Π΅Ρ€Π΅Π· callback(pingback).

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ расписан Π² Π΄Π°Π½Π½ΠΎΠΉ схСмС

ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

import requests
from python_rucaptcha import ImageCaptcha, RuCaptchaControl, CallbackClient
# Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚ сСрвиса RuCaptcha, ΠΈΠ· своСго Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°
RUCAPTCHA_KEY = ""
# Бсылка Π½Π° изобраТСния для Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠΈ
image_link = ""

# для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ IP/URL(дСлаСтся с Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ IP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ рСгистрируСтС):
RuCaptchaControl.RuCaptchaControl(rucaptcha_key=RUCAPTCHA_KEY).additional_methods(action='add_pingback', addr='http://85.255.8.26/')
# ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° зарСгистрированных адрСсов
answer = RuCaptchaControl.RuCaptchaControl(rucaptcha_key=RUCAPTCHA_KEY).additional_methods(action='get_pingback', json=1)
print(answer)

# Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ слоТноС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ(15+ Π·Π½Π°ΠΊΠΎΠ² ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚) для получСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΏΡ‡ΠΈ
queue_name = 'ba86e77f9007_andrei_drang_7436e744_cute_queue'
# рСгистрируСм ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π° callback сСрвСрС
answer = requests.post(f'http://85.255.8.26:8001/register_key', json={'key':queue_name, 'vhost': 'rucaptcha_vhost'})
print(answer.text)

# создаём Π·Π°Π΄Π°Π½ΠΈΠ΅ Π² сСрвисС RuCaptcha ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ `pingback` ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€
task_creation_answer = ImageCaptcha.ImageCaptcha(rucaptcha_key=RUCAPTCHA_KEY, 
                                                     pingback=f'85.255.8.26:8001/rucaptcha/image_captcha/{queue_name}', 
                                                    ).captcha_handler(captcha_link=image_link)

print(task_creation_answer)
# Π”Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° получСния Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ: кСш(Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ хранится 1 час) ΠΈ  rabbitmq ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ(Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ удаляСтся послС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ чтСния)
# ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ ΠΊ сСрвСру ΠΈ ΠΆΠ΄Ρ‘ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΏΡ‡ΠΈ ΠΈΠ· кСша
callback_cache_response = CallbackClient.CallbackClient(task_id=task_creation_answer.get('id')).captcha_handler()
# ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ ΠΊ сСрвСру ΠΈ ΠΆΠ΄Ρ‘ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΏΡ‡ΠΈ ΠΈΠ· RabbitMQ queue
callback_queue_response = CallbackClient.CallbackClient(task_id=task_creation_answer.get('id'), queue_name=queue_name, call_type='queue').captcha_handler()

print(callback_cache_response)
print(callback_queue_response)

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ callback сСрвСр Ρƒ сСбя:

НСбольшая инструкция-памятка ΠΏΠΎ шагам.

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ POST-запросы, ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ ΠΈΡ…, ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡ΡƒΡŽ, Π½ΡƒΠΆΠ½ΡƒΡŽ Π²Π°ΠΌ, магию.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠ³ΠΎ сСрвСра, написанный Π½Π° aiohttp.

ВсС тСсты ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° локальном сСрвСрС, эмулируя POST-запросы ΠΎΡ‚ RuCaptcha ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ локального ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ создания Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ для callback(pingback) способа Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΠ΅ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ, для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΊΠ°ΠΏΡ‡ΠΈ.

Π Π°Π±ΠΎΡ‚Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ - ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΏΡ‡ΠΈ пСриодичСским опросом сСрвСра.

1.РСшСниС ΠΊΠ°ΠΏΡ‡ΠΈ-изобраТСния(большиС ΠΈ малСнькиС).

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'])
	print(user_answer ['errorBody'])

2.РСшСниС KeyCaptcha(ΠΏΠ°Π·Π»-ΠΊΠ°ΠΏΡ‡Π°).

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':'8f460599bebe02cb0dd096b1fe70b089',
                		's_s_c_web_server_sign':'edd2c221c05aece19f6db93a36b42272',
                		's_s_c_web_server_sign2':'15989edaad1b4dc056ec8fa05abc7c9a',
                		'pageurl':'https://www.keycaptcha.com/signup/'
			}
	)

# ΠΊΠ°ΠΏΡ‡Π° Ρ€Π΅ΡˆΠ΅Π½Π° Π²Π΅Ρ€Π½ΠΎ, ошибка = 0
if not answer['error']:
	# Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡ‡ΠΈ
	print(answer['captchaSolve'])
	print(answer['taskId'])
# Π²ΠΎ врСмя Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΏΡ‡ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ошибки, ошибка = 1
elif answer['error']:
	# Π’Π΅Π»ΠΎ ошибки, Ссли Π΅ΡΡ‚ΡŒ
	print(answer['errorBody'])

3.РСшСниС ReCaptcha v2.

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'])
	print(user_answer ['errorBody'])

4.РСшСниС ReCaptcha v3.

from python_rucaptcha import ReCaptchaV3
# Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚ сСрвиса RuCaptcha, ΠΈΠ· своСго Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°
RUCAPTCHA_KEY = ""
# G-ReCaptcha ΠΊΠ»ΡŽΡ‡ сайта
SITE_KEY = ""
# Бсылка Π½Π° страницу с ΠΊΠ°ΠΏΡ‡Ρ‘ΠΉ
PAGE_URL = ""
# Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° action, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ нашли Π² ΠΊΠΎΠ΄Π΅ сайта
ACTION = 'verify'
# Π’Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π° (score) Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ°, ΠΎΡ‚ 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'])
	print(user_answer ['errorBody'])

5.РСшСниС RotateCaptcha(ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅).

6.РСшСниС тСкстовой ΠΊΠ°ΠΏΡ‡ΠΈ.

from python_rucaptcha import TextCaptcha
# Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚ Ρ€ΡƒΠΊΠ°ΠΏΡ‡ΠΈ ΠΈΠ· своСго Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°
RUCAPTCHA_KEY = ''
# Вопрос
text_question = 'Если Π·Π°Π²Ρ‚Ρ€Π° суббота, Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎΠΉ сСгодня дСнь?'

user_answer = TextCaptcha.TextCaptcha(rucaptcha_key = RUCAPTCHA_KEY).captcha_handler(captcha_text = text_question)

if not user_answer['error']:
	# Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡ‡ΠΈ
	print(user_answer['captchaSolve'])
	print(user_answer['taskId'])
elif user_answer['error']:
	# Π’Π΅Π»ΠΎ ошибки, Ссли Π΅ΡΡ‚ΡŒ
	print(user_answer ['errorBody'])
	print(user_answer ['errorBody'])

7.РСшСниС FunCaptcha.

from python_rucaptcha import FunCaptcha
# Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚ Ρ€ΡƒΠΊΠ°ΠΏΡ‡ΠΈ ΠΈΠ· своСго Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°
RUCAPTCHA_KEY = ''

'''
Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится FunCaptch: 
https://www.funcaptcha.com/demo
Π”Π°Π½Π½Ρ‹Π΅ взятыС ΠΈΠ· этой страницы ΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ°ΠΏΡ‡Π΅:
'''
public_key = 'DE0B0BB7-1EE4-4D70-1853-31B835D4506B'
pageurl = 'https://www.funcaptcha.com/demo'

answer = FunCaptcha.FunCaptcha(rucaptcha_key = RUCAPTCHA_KEY).captcha_handler(public_key=public_key, page_url=pageurl)

if not answer['error']:
    # Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡ‡ΠΈ
    print(answer['captchaSolve'])
    print(answer['taskId'])
elif answer['error']:
    # Π’Π΅Π»ΠΎ ошибки, Ссли Π΅ΡΡ‚ΡŒ
    print(answer ['errorBody'])

8.ΠœΠΎΠ΄ΡƒΠ»ΡŒ для получСния ΠΈΠ½ΠΎΡ„Ρ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ балансС Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π° ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ ΠΆΠ°Π»ΠΎΠ±.

from python_rucaptcha.RuCaptchaControl import RuCaptchaControl
# Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚ Ρ€ΡƒΠΊΠ°ΠΏΡ‡ΠΈ ΠΈΠ· своСго Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°
RUCAPTCHA_KEY = ''

JsSha1 = "af2d0557c23ff2d8f40ccf4bec57e480704634e9"
JsUri = "http://www.targetwebsite.com/pvvhnzyazwpzgkhv.js"
JsData = "IWZ1bmN0fewfwefwefwef9905j0g4905jh9046hj3cpCg=="

answer = RuCaptchaControl(rucaptcha_key=RUCAPTCHA_KEY).additional_methods(
            action="getbalance"
        )

if not answer["error"]:
    print("Your balance is: ", answer["serverAnswer"], " rub.")

elif answer["error"]:
    # Π’Π΅Π»ΠΎ ошибки, Ссли Π΅ΡΡ‚ΡŒ
    print(answer["errorBody"])

# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΆΠ°Π»ΠΎΠ±Ρ‹ Π½Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π΅ΡˆΡ‘Π½Π½ΡƒΡŽ ΠΊΠ°ΠΏΡ‡Ρƒ ΠΏΠΎΠ΄ ID "666"
wrong_captcha_id = 666

answer = RuCaptchaControl(rucaptcha_key=RUCAPTCHA_KEY).additional_methods(
            action="reportbad", id=wrong_captcha_id
        )

# Если заявка принята
if not answer["error"]:
    print("Заявка принята.")

# Если Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка
elif answer["error"]:
    print(answer["errorBody"])

9.РСшСниС HCaptcha.

from python_rucaptcha.HCaptcha import HCaptcha
RUCAPTCHA_KEY = ''

website_link = "https://secure2.e-konsulat.gov.pl/Uslugi/RejestracjaTerminu.aspx?IDUSLUGI=1&IDPlacowki=94"
data_sitekey = "39fccce0-e3e3-4f9d-a942-ea415c102beb"

answer = HCaptcha(rucaptcha_key=RUCAPTCHA_KEY).captcha_handler(
    site_key=data_sitekey, page_url=website_link
)

if not answer['error']:
    # Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡ‡ΠΈ
    print(answer['captchaSolve'])
    print(answer['taskId'])
elif answer['error']:
    # Π’Π΅Π»ΠΎ ошибки, Ссли Π΅ΡΡ‚ΡŒ
    print(answer ['errorBody'])

10.РСшСниС CapyPuzzle.

from python_rucaptcha.CapyPuzzle import CapyPuzzle
RUCAPTCHA_KEY = ''

captchakey="PUZZLE_Cme4hZLjuZRMYC3uh14C52D3uNms5w"
page_url="https://www.capy.me/account/register/"

answer = CapyPuzzle(rucaptcha_key=RUCAPTCHA_KEY).captcha_handler(
            captchakey=captchakey, page_url=page_url
        )

if not answer['error']:
    # Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡ‡ΠΈ
    print(answer['captchaSolve'])
    print(answer['taskId'])
elif answer['error']:
    # Π’Π΅Π»ΠΎ ошибки, Ссли Π΅ΡΡ‚ΡŒ
    print(answer ['errorBody'])

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, для тСстирования Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠ°ΠΏΡ‡ΠΈ прСдоставляСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ собраны всС ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Ρ‚ΠΈΠΏΡ‹ ΠΊΠ°ΠΏΡ‡ΠΈ, с ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ систСмой тСстирования Π²Π°ΡˆΠΈΡ… скриптов.

Errors description. Описания ошибок

Π’ ΠΎΠ±ΠΎΠΈΡ… ссылках находятся Π²Π°Π»ΠΈΠ΄Π½Ρ‹Π΅ описания ошибок

Keywords

captcha rucaptcha python3 flask recaptcha captcha security api python-library python-rucaptcha rucaptcha-client

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts