Кибор » Кибор - Интегрированная среда разработки ботов » Готовые скрипты » Разгадывание Капчи

Страниц (4): « 1 2 3 [4]
 

31. Dantes3000 - 11 Февраля, 2017 - 02:50:25 - перейти к сообщению
asrok , ты явно не туда обратился
32. AdryV - 07 Ноября, 2019 - 00:03:47 - перейти к сообщению
эмм сколько не шарил в инете так и не нашел похожий код на с++/CLI может у когото есть буду благодарен Подмигивание
33. Feniks - 24 Июля, 2020 - 09:19:33 - перейти к сообщению
Kibor , добрый день админ хотел задать вопрос а как можна подключить CapMonster 2
34. ALEX1306 - 12 Марта, 2021 - 05:51:17 - перейти к сообщению
И КАК И ВОСПОЛЬЗОВАТСЯ ?
35. Kibor - 12 Марта, 2021 - 06:03:15 - перейти к сообщению
 ALEX1306 пишет:
И КАК И ВОСПОЛЬЗОВАТСЯ ?
Как описано в описание. Но это устаревший вариант и не факт что рабочий еще.

Более правильно будет использовать это

Пример использования парсера для работы с сервисом anti-captcha.com для решения капчи(для просмотра ссылки Вам необходимо авторизоваться)
36. Dantes3000 - 13 Марта, 2021 - 05:58:15 - перейти к сообщению
Лучше питоном в пару строк:

CODE:

string res="дуля";

if (runpython())
{
if (runfilepython (pathfolder()+"capcha.txt"))//Прочитали скрипт с файла и выполняем его, если там есть что то кроме функций
{
loop()
{
res = getpython();
if(res=="" || res== "ERROR_READ_PYTHON") sleep(1000);
else break;
}
}
}
else
{
messagebox("Python не был запущен. Проверьте^nналичие интерпретатора в папке");

}
messagebox(res);


capcha.txt

CODE:

from twocaptcha import TwoCaptcha #библиотеку надо скачать заранее


solver = TwoCaptcha('06c1533229beda905bbcf') #ключ апи

try:
----result = solver.normal('D:/KIBOR/Kibor/capcha.jpg') #картинка с капчей
----print (result['code'])
except Exception as res:
----print (res)
37. kulakowka - 14 Марта, 2021 - 17:12:15 - перейти к сообщению
Подскажите пожалуйста, а как это внедрить в свой проект сделанный в визуальном редакторе, если познаний в кодинге нет? Что и куда вписать нужно..
38. Dantes3000 - 15 Марта, 2021 - 02:53:44 - перейти к сообщению
kulakowka , весь первый код кинуть в блок кода, результат будет в переменной res, с которой уже можно работать.

Второй код сохранить в папку с кибором (или откуда запускается бот). Надо зарегистрироваться на(для просмотра ссылки Вам необходимо авторизоваться) и заменить ключ АПИ.

А как библиотеку twocaptcha скачать - это в интернете поискать надо
39. Kibor - 23 Марта, 2021 - 07:19:19 - перейти к сообщению
Готовый код для подключению к сервису anti-captcha.com для решения текстовой капчи
Ключ dce6bcbb1a728ea8d563de6d169a2057 указан для примера.

CODE:
pause (1000);
savescreen(JPG, "C:\capcha.jpg", 653, 332, 995, 448, -1);//Делаем скрин капчи и сохраняем на диск
sleep(100);

string O;
int k=read_captcha("dce6bcbb1a728ea8d563de6d169a2057", "C:\capcha.jpg", #O);
messagebox (k);//Возвращает 1 при решение. <0 при ошибке
messagebox (O);//Решение или текст ошибки

function read_captcha(string KEY, string FL, string #Ot)
{



char BYTE[100000];//Массив байт для загрузки файла с капчей JPG. Потом его используем для JSON запроса
//Загружаем файл с капчей JPG и сразу форматируем его в base64
//первой выполнится функция read_file, вернет размер его и в #file[0] будет уже указатель на массив байт файла
//Затем выполнится функция base64code
string file64=base64code (#BYTE[0], read_file(#BYTE[0], FL));//Перед этим скриним часть экрана с капчей и сохраняем ее в C:\tab.jpg функцией savescreen

string json;//Строка для JSON запроса


//Формируем JSON запрос согласно документации anti-captcha.com
/*
{
"clientKey":"dce6bcbb1a728ea8d563de6d169a2057",
"task":
{
"type":"ImageToTextTask",
"body":"BASE64_BODY_HERE!",
"phrase":false,
"case":false,
"numeric":0,
"math":false,
"minLength":0,
"maxLength":0
}
}
*/
json="{^"clientKey^":^""+KEY+"^"," +
"^"task^":{^"type^":^"ImageToTextTask^"" +
",^"body^":^""+file64+"^",^"phrase^"" +
":false,^"case^":false,^"numeric^":0,^"math^"" +
":false,^"minLength^":0,^"maxLength^":0}}";

int aW=size(json);//Узнаем размер JSON запроса


strcpy(#BYTE[0], json);//Записываем JSON запрос в массив байт

//messagebox(json);

string Header="Content-Type: application/x-www-form-urlencoded";//Формируем какой то заголовок

char REZ[100000];//Массив для приема ответа

int K=0;
A: sendgetweb(#REZ[0], "My bot", "POST", "https:/^/api.anti-captcha.com", "createTask", Header, #BYTE[0], aW);//Отправляем на anti-captcha.com и получаем ответ

//messagebox (format(#REZ[0]));

//Ответ такого формата
/*
{
"errorId":0,
"taskId":7654321
}
*/
if (parserjson(Rez_Json, format(#REZ[0]))!=1)//Парсим ответ
{
if (K>2)
{
Ot="Не подключились к сервису";
return -1;
}
K++;
pause(2000);
goto A;
}

//messagebox (format(#REZ[0]));

if (Rez_Json.errorId=="0")//Если нет ошибки
{
string id=Rez_Json.taskId;//Сохраняем полученный ID


//messagebox (id);

pause(3000);//Пауза

loop(50)
{
pause(2000);//Пауза в цикле между запросами решения

//Формируем запрос на ответ о решение капчи куда записываем наш clientKey и полученный taskId
/*
{
"clientKey":"dce6bcbb1a728ea8d563de6d169a2057",
"taskId": 7654321
}
*/
json="{^"clientKey^":^""+KEY+"^",^"taskId^": "+id+"}";
aW=size(json);//Узнаем размер JSON запроса
strcpy(#BYTE[0], json);//Записываем JSON запрос в массив байт

//messagebox(json);

sendgetweb(#REZ[0], "My bot", "POST", "https:/^/api.anti-captcha.com", "getTaskResult", Header, #BYTE[0], aW);//Отправляем на anti-captcha.com и получаем ответ

//messagebox (format(#REZ[0]));


//Ответ такого формата
/*
{
"errorId":0,
"status":"ready",
"solution":
{
"text":"deditur",
"url":"http:\/\/61.39.233.233\/1\/147220556452507.jpg"
},
"cost":"0.000700",
"ip":"46.98.54.221",
"createTime":1472205564,
"endTime":1472205570,
"solveCount":"0"
}
*/
if (parserjson(Rez_Json, format(#REZ[0]))!=1)//Парсим ответ
{
continue;
}

if (Rez_Json.errorId!="0")//Если есть ошибка
{
//messagebox("errorId "+Rez_Json.errorId);
Ot=Rez_Json.errorId;
//messagebox(format(#REZ[0]));
return -2;
//break;//Выходим из цикла
}
if (Rez_Json.status=="ready")//Если капча решена
{
//messagebox (Rez_Json.solution.text);//Выводим решение
//messagebox (Rez_Json.solution.url);
Ot=Rez_Json.solution.text;
return 1;
//break;//Выходим из цикла
}
}
}
else
{
//messagebox (Rez_Json.errorCode);//Если не верный clientKey
Ot=Rez_Json.errorCode;
return -3;
}
Ot="Ошибка";
return -4;
}



function read_file(char #B[0], string pyt)
{
int size_file=0;
if (fopen (pyt, "rb")!=0)
{
size_file=freadb(#B[0], 10000);
fclose();
}
//messagebox (size_file);
return size_file;
}

Powered by ExBB FM 1.0 Final