From c4424772a05ea6e8b4bb090a336c46995764bbe5 Mon Sep 17 00:00:00 2001 From: redV0ID Date: Mon, 30 Oct 2017 03:15:58 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=BA=D1=81=D1=82=D1=80=D0=B8?= =?UTF-8?q?=D0=BD=D0=B3=D0=B8,=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=80=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- python3_anticaptcha/NoCaptchaTask.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/python3_anticaptcha/NoCaptchaTask.py b/python3_anticaptcha/NoCaptchaTask.py index ab0e957..37ca153 100644 --- a/python3_anticaptcha/NoCaptchaTask.py +++ b/python3_anticaptcha/NoCaptchaTask.py @@ -1,6 +1,5 @@ import requests import time - from .config import create_task_url, get_result_url, app_key, user_agent_data @@ -8,8 +7,14 @@ class NoCaptchaTask: def __init__(self, anticaptcha_key, proxyAddress, proxyPort, sleep_time=5, proxyType = 'http', **kwargs): """ - :params - return: + Модуль отвечает за решение NoCaptcha. + userAgent рандомно берётся из актульного списка браузеров-параметров + :param anticaptcha_key: ключ от АнтиКапчи + :param proxyAdress: Адрес прокси-сервера + :param proxyPort: Порт сервера + :param proxyType: Тип прокси http/socks5/socks4 + :param sleeptime: Время ожидания решения + :param kwargs: Необязательные параметры, можно переопределить userAgent """ self.sleep_time = sleep_time @@ -27,18 +32,25 @@ class NoCaptchaTask: # пайлоад для получения ответа сервиса self.result_payload = {"clientKey": anticaptcha_key} - + # заполнить пайлоад остальными аргументами if kwargs: for key in kwargs: self.task_payload['task'].update({key: kwargs[key]}) - + # Работа с капчей def captcha_handler(self, websiteURL, websiteKey): + """ + Метод получает ссылку на страницу, где расположена капча, и ключ капчи + :param: websiteURL: Ссылка на страницу с капчёй + :param: websiteKey: Ключ капчи(как его получить - описано в документаии на сайте антикапчи) + return: Возвращает ответ сервера в виде JSON(ответ так же можно глянуть в документации антикапчи) + """ self.task_payload['task'].update({"websiteURL": websiteURL, "websiteKey": websiteKey}) - # отправляем реквест + # отправляем реквест, в ответ получаем JSON содержащий номер решаемой капчи captcha_id = requests.post(create_task_url, json=self.task_payload).json() + # Проверка статуса создания задачи, если создано без ошибок - извлекаем ID задачи, иначе возвращаем ответ сервера if captcha_id['errorId'] == 0: captcha_id = captcha_id["taskId"] self.result_payload.update({"taskId": captcha_id})