Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013 Откуда: Одесса
Репутация: 357
Скрипт бота для серфинга. Разгадывание простой капчи, работа в фоновом режиме. Структура программы.
Базу распознавания скачать с Функция распознавания текста
Изображения сделать как показано на видео.
При необходимости поменять координаты на свои. Тестировалось в мозилле.
Видео с пояснениями и демонстрация работы.
CODE:
win w;//Указатель на окно
int x1_counter=194, y1_counter=129, x2_counter=240, y2_counter=158;//координаты счетчика
int x1_captcha=197, y1_captcha=137, x2_captcha=254, y2_captcha=163;//координаты капчи
char text_select[4][4];//В эти переменные запишем координаты кнопок с ответами
int kn[4];//в эти переменные запишем количество соспавших символов для каждого ответа
//сюда загрузим изображения
int s1[50][50];
int s2[50][50];
int s3[50][50];
int xe, ye;//переменные для записи в них координат положения мыши для получения указателя окна под этими координатами
int x[20], y[20];//Координаты ссылок
int k, i;//В k будет количество ссылок найденных. С помощью i будем перебирать цикл
//Загружаем изображения
if (load_image()==-1){messagebox ("error load_image"); goto error;}
//Загружаем базу распознавания текста
if (loadsymbolbase ("C:\surfing\basetext.sib")<1){messagebox ("error loadsymbolbase"); goto error;}
//Узнаем координаты мыши и указатель на окно под этими координатами
pause(1000);
getmouse(xe, ye);
w=getwindow(1, xe, ye);
//Скрываем окно браузера с экрана
transparency (-1, w);
pause(1000);
//Сканируем браузер на наличие ссылок и записываем их координаты в массив x y, а количество в k
scan_ssil();
//перебираем все ссылки
for (i=0; i<k; i++)
{
//сбрасываем все надписи
resettextout(1);
textbkcolor (65535,0);
//Кликаем по ссылке
sendmouse(LEFT, x[i]+75, y[i]-8, w);
pause(3000);
//Сканируем счетчик и ждем пока он не станет 0
if (read_counter()==-1)goto dal;//если прошло более минуты пропускаем все, закрываем вкладку.
pause(1500);
//Сканируем капчу и распознаем
read_captcha();
//Сканируем и распознаем текст на кнопках с ответами
read_reply();
//Сравниваем разгаданную капчу с ответами на кноапках посимвольно
select_reply();
function select_reply()
{
int n, n1;
for (n=0; n<4; n++)
{
kn[n]=0;
for (n1=0; n1<3; n1++)
{
if (text_captcha[n1]==text_select[n][n1])kn[n]++;
}
if (kn[n]==3){vibor(n); return;}//Если совпало все 3 символа кликаем по кнопке и идем дальше
}
//////////
for (n=0; n<4; n++)
{
if (kn[n]==2){vibor(n); return;}//Если совпало 2 символа кликаем по кнопке и идем дальше
}
/////////////////
for (n=0; n<4; n++)
{
if (kn[n]==1){vibor(n); return;}//Если совпал 1 символ кликаем по кнопке и идем дальше
}
При поиске следующего изображения мы даем указатель не на начало массивов x y, а на индекс k, то есть на место до которого записаны координаты прошлых изображений. Таким образом мы получаем один массив на разные изображения которые мы нашли.
Распознавание текста и использование двухмерного массива char для построчного заполнения его распознанным текстом с разных областей
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.