diff --git a/.gitignore b/.gitignore index 878521a..c36bd10 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,6 @@ # Created by .ignore support plugin (hsz.mobi) .idea/.name .idea/PythonAntiCaptcha.iml -.idea/inspectionProfiles/ -.idea/misc.xml -.idea/modules.xml -.idea/workspace.xml /test.py -.idea/preferred-vcs.xml -.idea/python3-anticaptcha.iml python3_anticaptcha/__pycache__/ +/.idea/ diff --git a/python3_anticaptcha/FunCaptchaTask.py b/python3_anticaptcha/FunCaptchaTask.py index e5f148f..ad2c53f 100644 --- a/python3_anticaptcha/FunCaptchaTask.py +++ b/python3_anticaptcha/FunCaptchaTask.py @@ -2,11 +2,19 @@ import requests import time from .config import create_task_url, get_result_url, app_key, user_agent_data -# from .errors import RuCaptchaError -#TODO Добавить документацию class FunCaptchaTask: def __init__(self, anticaptcha_key, sleep_time=5, proxyType = 'http', proxyAddress = None, proxyPort = None, **kwargs): + """ + Модуль отвечает за решение FunCaptcha + Параметр userAgent рандомно берётся из актульного списка браузеров-параметров + :param anticaptcha_key: Ключ от АнтиКапчи + :param sleep_time: Время ожидания решения + :param proxyType: Тип прокси http/socks5/socks4 + :param proxyAddress: Адрес прокси-сервера + :param proxyPort: Порт сервера + :param kwargs: Можно передать необязательные параметры и переопределить userAgent + """ self.ANTICAPTCHA_KEY = anticaptcha_key self.sleep_time = sleep_time @@ -23,8 +31,7 @@ class FunCaptchaTask: }, } - # отправляем запрос на результат решения капчи, если ещё капча не решена - ожидаем 5 сек - # если всё ок - идём дальше + # пайлоад для получения ответа сервиса self.result_payload = {"clientKey": self.ANTICAPTCHA_KEY} # Если переданы ещё параметры - вносим их в payload @@ -34,16 +41,22 @@ class FunCaptchaTask: # Работа с капчёй def captcha_handler(self, websiteURL, websitePublicKey): - + """ + Метод получает ссылку на страницу на которпой расположена капча и ключ капчи + :param websiteURL: Ссылка на страницу с капчёй + :param websitePublicKey: Ключ капчи(как его получить - описано в документаии на сайте антикапчи) + :return: Возвращает ответ сервера в виде JSON(ответ так же можно глянуть в документации антикапчи) + """ self.task_payload['task'].update({"websiteURL": websiteURL, "websiteKey": websitePublicKey}) - # Отправляем на антикапча изображение капчи и другие парметры, + # Отправляем на антикапча параметры фанкапич, # в результате получаем 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}) else: return captcha_id diff --git a/test.py b/test.py index 031612e..6da9e04 100644 --- a/test.py +++ b/test.py @@ -1,5 +1,19 @@ -from python3_anticaptcha import ImageToTextTask, config +from python3_anticaptcha import ImageToTextTask, config, AntiCaptchaControl, FunCaptchaTask, NoCaptchaTaskProxyless key = config.TEST_KEY -print(ImageToTextTask.ImageToTextTask(key, save_format = 'const').captcha_handler('http://85.255.8.26/static/image/common_image_example/800070.png')) -print(ImageToTextTask.ImageToTextTask(key).captcha_handler('http://85.255.8.26/static/image/common_image_example/800070.png')) +#print(ImageToTextTask.ImageToTextTask(key, save_format = 'const').captcha_handler('http://85.255.8.26/static/image/common_image_example/800070.png')) +#print(AntiCaptchaControl.AntiCaptchaControl(anticaptcha_key = config.TEST_KEY).complaint_on_result(reported_id = -5)) +print(AntiCaptchaControl.AntiCaptchaControl(anticaptcha_key = config.TEST_KEY).get_balance()) +''' +print(FunCaptchaTask.FunCaptchaTask(config.TEST_KEY, + proxyType='HTTP', + proxyAddress="8.8.8.8", + proxyPort=8080, + proxyLogin="proxyLoginHere", + proxyPassword="proxyPasswordHere") + .captcha_handler(websiteURL='85.450.48', + websitePublicKey='789456132')) +''' +print(NoCaptchaTaskProxyless.NoCaptchaTaskProxyless(anticaptcha_key=config.TEST_KEY) + .captcha_handler(websiteURL='https://www.google.com/recaptcha/intro/android.html', + websiteKey='6LeuMjIUAAAAAODtAglF13UiJys0y05EjZugej6b'))