2017-10-30 11:59:22 +00:00
|
|
|
|
import asyncio
|
2018-11-01 16:01:36 +00:00
|
|
|
|
import requests
|
2017-10-30 11:59:22 +00:00
|
|
|
|
|
2018-11-01 16:01:36 +00:00
|
|
|
|
from python3_anticaptcha import NoCaptchaTaskProxyless, NoCaptchaTask, CallbackClient
|
2017-10-29 20:21:06 +00:00
|
|
|
|
|
2018-11-01 16:01:36 +00:00
|
|
|
|
ANTICAPTCHA_KEY = "ae23fffcfaa29b170e3843e3a486ef19"
|
2017-10-29 20:21:06 +00:00
|
|
|
|
|
|
|
|
|
# Пример показывает работу антикапчи с "невидимой" рекапчёй от гугла, точно так же работает обычная рекапча от гугла.
|
|
|
|
|
# Это метод для работы без прокси
|
2019-03-19 19:26:12 +00:00
|
|
|
|
result = NoCaptchaTaskProxyless.NoCaptchaTaskProxyless(
|
|
|
|
|
anticaptcha_key=ANTICAPTCHA_KEY
|
|
|
|
|
).captcha_handler(
|
|
|
|
|
websiteURL="https://www.google.com/recaptcha/api2/demo",
|
|
|
|
|
websiteKey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
|
|
|
|
|
)
|
2017-10-29 20:21:06 +00:00
|
|
|
|
print(result)
|
|
|
|
|
|
2019-03-01 17:29:28 +00:00
|
|
|
|
# contextmanager
|
2019-03-19 19:26:12 +00:00
|
|
|
|
with NoCaptchaTaskProxyless.NoCaptchaTaskProxyless(
|
|
|
|
|
anticaptcha_key=ANTICAPTCHA_KEY
|
|
|
|
|
) as nocaptcha:
|
2019-03-01 17:29:28 +00:00
|
|
|
|
response = nocaptcha.captcha_handler(
|
2019-03-19 19:26:12 +00:00
|
|
|
|
websiteURL="https://www.google.com/recaptcha/api2/demo",
|
|
|
|
|
websiteKey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
|
|
|
|
|
)
|
2019-03-01 17:29:28 +00:00
|
|
|
|
print(response)
|
|
|
|
|
|
|
|
|
|
|
2017-10-29 20:21:06 +00:00
|
|
|
|
# Пример работы антикапчи с гугловской невидимой рекапчёй и обычной рекапчёй с использованием ПРОКСИ
|
2019-03-19 19:26:12 +00:00
|
|
|
|
result = NoCaptchaTask.NoCaptchaTask(
|
|
|
|
|
anticaptcha_key=ANTICAPTCHA_KEY,
|
|
|
|
|
proxyType="http",
|
|
|
|
|
proxyAddress="8.8.8.8",
|
|
|
|
|
proxyPort=8080,
|
|
|
|
|
proxyLogin="proxyLoginHere",
|
|
|
|
|
proxyPassword="proxyPasswordHere",
|
|
|
|
|
).captcha_handler(
|
|
|
|
|
websiteURL="https://www.google.com/recaptcha/api2/demo",
|
|
|
|
|
websiteKey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
|
|
|
|
|
)
|
2017-10-29 20:21:06 +00:00
|
|
|
|
|
|
|
|
|
print(result)
|
2017-10-30 11:59:22 +00:00
|
|
|
|
|
|
|
|
|
# Асинхронный пример
|
|
|
|
|
async def run():
|
2019-03-19 19:26:12 +00:00
|
|
|
|
try:
|
|
|
|
|
result = await NoCaptchaTaskProxyless.aioNoCaptchaTaskProxyless(
|
|
|
|
|
anticaptcha_key=ANTICAPTCHA_KEY
|
|
|
|
|
).captcha_handler(
|
|
|
|
|
websiteURL="https://www.google.com/recaptcha/api2/demo",
|
|
|
|
|
websiteKey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
|
|
|
|
|
)
|
|
|
|
|
print(result)
|
|
|
|
|
except Exception as err:
|
|
|
|
|
print(err)
|
2017-10-30 11:59:22 +00:00
|
|
|
|
|
|
|
|
|
|
2019-03-19 19:26:12 +00:00
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
loop = asyncio.get_event_loop()
|
|
|
|
|
loop.run_until_complete(run())
|
|
|
|
|
loop.close()
|
2018-11-01 16:01:36 +00:00
|
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
Callback example
|
|
|
|
|
"""
|
2019-03-19 19:26:12 +00:00
|
|
|
|
QUEUE_KEY = "wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ_anticaptcha_queue"
|
2018-11-01 16:01:36 +00:00
|
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
Перед тем как начать пользоваться сервисом нужно создать для своей задачи отдельную очередь
|
|
|
|
|
Очередь можно создать один раз и пользоваться постоянно
|
|
|
|
|
|
|
|
|
|
Для создания очереди нужно передать два параметра:
|
|
|
|
|
1. key - название очереди, чем оно сложнее тем лучше
|
|
|
|
|
2. vhost - название виртуального хоста(в данном случаи - `anticaptcha_vhost`)
|
|
|
|
|
"""
|
|
|
|
|
|
2019-03-19 19:26:12 +00:00
|
|
|
|
answer = requests.post(
|
|
|
|
|
"http://85.255.8.26:8001/register_key",
|
|
|
|
|
json={"key": QUEUE_KEY, "vhost": "anticaptcha_vhost"},
|
|
|
|
|
)
|
|
|
|
|
# если очередь успешно создана:
|
|
|
|
|
if answer == "OK":
|
2018-11-01 16:01:36 +00:00
|
|
|
|
# создаём задание с callbackURL параметром
|
2019-03-19 19:26:12 +00:00
|
|
|
|
result = NoCaptchaTask.NoCaptchaTask(
|
|
|
|
|
anticaptcha_key=ANTICAPTCHA_KEY,
|
|
|
|
|
proxyType="http",
|
|
|
|
|
proxyAddress="8.8.8.8",
|
|
|
|
|
proxyPort=8080,
|
|
|
|
|
proxyLogin="proxyLoginHere",
|
|
|
|
|
proxyPassword="proxyPasswordHere",
|
|
|
|
|
callbackUrl=f"http://85.255.8.26:8001/anticaptcha/nocaptcha/{QUEUE_KEY}",
|
|
|
|
|
).captcha_handler(
|
|
|
|
|
websiteURL="https://www.google.com/recaptcha/api2/demo",
|
|
|
|
|
websiteKey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
print(result)
|
2018-11-01 16:01:36 +00:00
|
|
|
|
|
|
|
|
|
# получение результата из кеша
|
2019-03-19 19:26:12 +00:00
|
|
|
|
print(CallbackClient.CallbackClient(task_id=result["taskId"]).captcha_handler())
|
2018-11-01 16:01:36 +00:00
|
|
|
|
# получение результата из RabbitMQ очереди
|
2019-03-19 19:26:12 +00:00
|
|
|
|
print(
|
|
|
|
|
CallbackClient.CallbackClient(
|
|
|
|
|
task_id=result["taskId"], queue_name=QUEUE_KEY, call_type="queue"
|
|
|
|
|
).captcha_handler()
|
|
|
|
|
)
|