Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Медленная работа скрипта

Страниц (2): [1] 2 »
 

1. Krauser - 18 Октября, 2021 - 16:58:01 - перейти к сообщению
Здравствуйте. Написал небольшой скрипт - кликер. Суть в том чтобы распознавать на участке экрана каптчу вида: Сколько будет: "число" + "число". результат копируется в буфер.
Но отрабатывает он довольно медленно, 1 цикл секунды 3-4. Есть какой-нибудь вариант это дело ускорить? Или так и должно быть?
CODE:
loadsymbolbase ("C:\Users\Zakkari\OneDrive\Äîêóìåíòû\l_new base.sib");
rep:;
//sleep(3000);
t=readtext (NUM | RU | MARK, #Text[0], 7, -1, 25, -1, -1, -1, -1, 0, 10, 48, 120, 272, 406, -1);
for (n=0; n<t; n++)
{
k="";
if ((Text[n]=="т") && (Text[n+1]==" ")) ////нашли "т "
{
User_X[0]=symbolxpos(n);
User_Y[0]=symbolypos(n);
for(n1=n+2; n1<t; n1++) //запускаем цикл начиная с 1 цифры после "т "
{
if (Text[n1]!=" ")
{
k=k+Text[n1]; //получаем первое число
}
else goto b;
}
b:;
if (s==(formatsn(k)+formatsn(Text[n1+3]))) //если число в буфере не поменялось..
{
goto rep;
}
s=(formatsn(k)+formatsn(Text[n1+3]));
writeclipboard(s);
mousemove (90+User_X[0], 150+User_Y[0]);
goto rep;
}
}
goto rep;
2. Zireael - 18 Октября, 2021 - 18:01:49 - перейти к сообщению
Сначала надо понять что именно долго выполняется.
Если долго выполняется именно readtext, то возможно неверно подобраны параметры и распознаётся много лишнего.
Зона поиска по Y почти 300 пикселей, цифры действительно такого размера?
Время выполнения какого-то кода можно проверить так:
CODE:
int t = gettime();
// тут какой-то код
// например:
sleep(2000);
messagebox("Затрачено времени: "+format(gettime()-t));

На счёт поиска чисел в строке:
CODE:
string Text = "Ск0лько будет: 20 + 35"; // допустим это распознанная строка

string num1, num2;
regexreplace(-1, #Text, Text, " ", ""); // удалить все пробелы

if(regexsearch(1, #num1, Text, "\d+(?=\+)")) // найти число до знака +
{
messagebox(num1);
}
else messagebox("Первое число не найдено");


if(regexsearch(1, #num2, Text, "(?<=\+)\d+")) // найти число после знака +
{
messagebox(num2);
}
else messagebox("Второе число не найдено");
3. Krauser - 19 Октября, 2021 - 05:29:35 - перейти к сообщению
Спасибо, сейчас попробую найти проблемный участок. По поводу зоны поиска - там цифры довольно маленькие, но каптча плавающая поэтому приходится сканить большую область.
4. Zireael - 19 Октября, 2021 - 05:48:07 - перейти к сообщению
 Цитата:
но каптча плавающая поэтому приходится сканить большую область.

Поэтому и медленно работает. Это изначально неверный подход.
Сначала нужно найти зону для распознавания. Тут есть разные варианты, через findimage или findheapcolor найти где появилась капча, а уже потом относительно координат капчи распознавать текст.
5. Krauser - 19 Октября, 2021 - 05:57:21 - перейти к сообщению
 Zireael пишет:
 Цитата:
но каптча плавающая поэтому приходится сканить большую область.

Поэтому и медленно работает. Это изначально неверный подход.
Сначала нужно найти зону для распознавания. Тут есть разные варианты, через findimage или findheapcolor найти где появилась капча, а уже потом относительно координат капчи распознавать текст.

Там получается как...есть окно допустим 200 на 300 пикселей. Оно с чёрным фоном, там нет никаких лишних шумов или надписей - только каптча, которая может появится в любом месте этого окна. Для ускорения были мысли разделить область сканирования пополам и запихать в 2 парралельных скрипта, но пока не знаю как это реализовать.
6. Zireael - 19 Октября, 2021 - 06:04:35 - перейти к сообщению
Нужен скрин с капчей чтобы что-то конкретнее подсказать.
7. Krauser - 19 Октября, 2021 - 06:10:38 - перейти к сообщению
 Zireael пишет:
Нужен скрин с капчей чтобы что-то конкретнее подсказать.

Полный скрин скинуть не могу т.к. там видны ники, но думаю и так будет понятно.
скрин (Отобразить)
8. Zireael - 19 Октября, 2021 - 06:13:26 - перейти к сообщению
Можно найти кнопку 'Проверить' и относительно неё распознать текст.
9. Krauser - 19 Октября, 2021 - 06:21:38 - перейти к сообщению
И если я сделаю через findimage это будет работать быстрее? Там же всё равно придётся всю область сканировать, чтоб найти эту самую кнопку.
10. KevinS - 19 Октября, 2021 - 06:25:19 - перейти к сообщению
окно с капчей(для просмотра ссылки Вам необходимо авторизоваться) появляется в рандомном месте? или в одном и том же?

Powered by ExBB FM 1.0 Final