Skip to content

GeeTest

Andrei edited this page Feb 15, 2019 · 2 revisions

Решение GeeTest-капчи при помощи библиотеки

Стандартный пример

Найти следующие параметры на странице сайта с капчей (обычно их можно найти внутри функции initGeetest):

  1. gt - публичный ключ сайта (статический)
  2. challenge - динамический ключ задания
  3. api_server - домен API (обязателен для некоторых сайтов)
  4. pageurl - полный URL страницы с капчей GeeTest

Статичные параметры передаются при инициализации класса. Параметр, который меняется каждый раз при новой капче(challenge) должен передаваться непосредственно в метод отвечающий за начало решения капчи captcha_handler.

from python_rucaptcha.GeeTest import GeeTest

gee = GeeTest(rucaptcha_key='0aba1234465beaf1935aa83fef9fc0d0', 
              gt='qt_key_123', 
              api_server='api-na.geetest.com', 
              pageurl='https://www.geetest.com/en/')
result = gee.captcha_handler(challenge='some_challenge')

С contextmanager

Тот же самый принцип сохраняется и при решении капчи с использованием contextmanager.

from python_rucaptcha.GeeTest import GeeTest

with GeeTest(rucaptcha_key='0aba1234465beaf1935aa83fef9fc0d0', 
             gt='qt_key_123', 
             api_server='api-na.geetest.com', 
             pageurl='https://www.geetest.com/en/') as gee:
    result = gee.captcha_handler(challenge='some_challenge')

Дополнительные параметры

При инициализации класса ему можно передать дополнительные параметры описанные в таблице: Список параметров GET/POST запроса к http://rucaptcha.com/in.php.

К примеру добавим переменную header_acao из таблицы:

from python_rucaptcha.GeeTest import GeeTest

gee = GeeTest(rucaptcha_key='0aba1234465beaf1935aa83fef9fc0d0', 
              gt='qt_key_123', 
              api_server='api-na.geetest.com', 
              pageurl='https://www.geetest.com/en/',
              header_acao=1)
result = gee.captcha_handler(challenge='some_challenge')

Так же дополнительные параметры можно передать и в вызываемый для решения капчи метод captcha_handler. К примеру добавим переменную header_acao из таблицы Список параметров GET-запроса к http://rucaptcha.com/res.php:

from python_rucaptcha.GeeTest import GeeTest

gee = GeeTest(rucaptcha_key='0aba1234465beaf1935aa83fef9fc0d0', 
              gt='qt_key_123', 
              api_server='api-na.geetest.com', 
              pageurl='https://www.geetest.com/en/')
result = gee.captcha_handler(challenge='some_challenge', header_acao=1)