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})