Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Stereotipchik on September 16, 2016, 09:01:16 AM
-
Здравствуйте, помогите пожалуйста составить сложнейший скрипт открытия Яндекса и вписывания поисковых запросов.
Нужно что бы Кликерман открывал текстовый файл ( вначале в коде он открывает текстовый файл с запросами), копировал строчку в файле, удалял строчку, закрывал текстовый файл ( здесь это инклюд zakrit.cms), открывал браузер, вписывал URL, вписывал поисковой запрос, искал пиксел определённого цвета ( ЕСЛИ подходит идёт дальше, ЕСЛИ нет нажимал Print screen, кликал по программе на рабочем столе (скайп), вставлял картинку в сообщение, ждал пока пиксель сменится, копировал текст сообщения, открывал браузер, вставлял текст в поле) , искал фав иконку и переходил по ссылке ( ЕСЛИ не нашёл прокручивал колёсико мыши, повторял поиск фавиконки (4 раза (крутить мышь и искать)), поиск другой картинки, клик по картинке, повтор (4 раза (крутить мышь и искать)), закрывал браузер, открывал текстовый файл брал следующую поисковую фразу и зациклился 10 раз ( то есть 10 поисковых фраз набрал )
Код не доделан, потому что не знаю как сделать цикл несколько раз
LCLICK(RND(7,29), RND(101,110))
WAITMS(500)
KEYDOWN(#Ctrl)
KEYPRESS(#C)
KEYUP(#Ctrl)
WAITMS(500)
#include "zakrit.cms"
WAITMS(1500)
DBLCLICK(RND(29,47), RND(170,190))//Firefox open
WAIT(7)
LCLICK(RND(234,255), RND(37,51))
WAITMS(1500)
KEYSTRING("yandex.ru")
WAITMS(1500)
KEYPRESS(#ENTER)
WAIT(12)
KEYDOWN(#Ctrl)
KEYPRESS(#V)
KEYUP(#Ctrl)
WAITMS(1500)
KEYPRESS(#ENTER)
WAIT(8)
MOVE(RND(679,1003), RND(107,731))
WAITMS(1500)
GETSCREEN
WAITMS(1500)
IF_PICTURE_IN(51,160,169,734, "fav_shevrons.bmp")
WAITMS(1500)
LCLICK($_return1,$_return2)
Else
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
WHEELDOWN
WAITMS(300)
WAIT(1)
GETSCREEN
WAITMS(1500)
IF_PICTURE_IN(51,160,169,734, "fav_shevrons.bmp")
WAITMS(1500)
LCLICK($_return1,$_return2)
-
Всё писать не буду. Покажу только часть.
Вот это, как минимум
копировал строчку в файле, удалял строчку,
закрывал текстовый файл ( здесь это инклюд zakrit.cms),
открывал браузер,
вписывал URL,
вписывал поисковой запрос,
...
ЕСЛИ нет нажимал Print screen,
...
закрывал браузер (вкладку)
можно написать гораздо проще:
$brawser = "firefox.exe"
SUB(close) //===================================================================
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#W)
WAITMS (50)
KEYUP (#W)
KEYUP (#CTRL)
WAITMS(500)
END_SUB
//==============================================================================
SUB(read_zapros) //=============================================================
$zapros = TFREAD("zaprosi.txt", 1)
WAITMS(50)
TFDELETE("zaprosi.txt", 1)
WAITMS(50)
END_SUB
//==============================================================================
SUB(open_find) //===============================================================
$zapros = STRREPLACE ($zapros, " ", "%20") // лечение пробелов
$param = STRCONCAT("yandex.ru/yandsearch?rpt=rad&text=", $zapros)
EXECUTE($brawser, $param)
WAITMS(2500)
END_SUB
//==============================================================================
FOR($iter=0, $iter < 10)
read_zapros() // читаем строку
open_find() // ищем в Яндексе
// ищем пиксель
GETSCREEN
IF_PIXEL_IN(0,0,$_xmax,$_ymax, 255)
// нашёл ....
ELSE
KEYPRESS(#PRINTSCREEN)
WAITMS(700)
// дальше скайпы всякие
END_IF
close() // закрываем вкладку
END_CYC
HALT
С остальным не всё прозрачно, не понятна очерёдность и вложенность.
В описании поиск пикселя, в примере поиск картинки...
И всякие " ЕСЛИ подходит идёт дальше" куда дальше? вносят непонятки.
-
"ЕСЛИ подходит идёт дальше" то есть если находит пиксель дальше идёт то действие что идёт после скобок, в данном случае искал фавиконку. ТЗ составлено так что то что в скобках это уловия, то что после скобок это действие после данного условия
-
Понятно. Без разделения на строки весь текст в одну строку не спасли даже скобки. ;D Мешанина не воспринялась.
При разбитии стало чуть ясней.
Но всё равно. Одна левая скобка лишняя, ломает вторую половину.
Вот эти вещи:
кликал по программе на рабочем столе (скайп), вставлял картинку в сообщение, ждал пока пиксель сменится, копировал текст сообщения, открывал браузер, вставлял текст в поле)
проще делать сразу на месте, активно работая с координатами. И там сразу будет видно что пропущено в описании. Где выбор собеседника?
открывал браузер, вставлял текст в поле)
тоже не понятно, какое поле.
Это не придирки. В любом случае если кто будет делать эти вопросы должен спросить. Если не спросит, то это халтура.
-
Подскажите пожалуйста как максимально уменьшить код хотябы начала, допустим урлы должны браться из текстового файла ( допустим их 10). Можно ли в этой части скрипта сделать переменную которая бы брала урлы с файла ?
EXECUTE("Firefox.exe","yandex.ru")
-
разом в массив:
TFReadArr("urls.txt", $aUrls)
logwrite("считано ",arrsize($aUrls), "строк")
дальше в цикле по элементам
или через одну переменную в цикле:
for($nStr= 0, TFCount("urls.txt"))
$sStr= StrReadln("urls.txt", $nStr+1)
logwrite("считанНая строка: <", $sStr, ">")
// ...
// действия со строкой]
// ...
end_cyc
все ф-ции в справке есть, читайте
-
for($nStr= 0, TFCount("urls.txt"))
$sStr= StrReadln("urls.txt", $nStr+1)
logwrite("считано строк: <", $sStr, ">")
KEYDOWN(#Ctrl)
KEYPRESS(#C)
KEYUP(#Ctrl)
EXECUTE("Firefox.exe",$sStr)
end_cyc
Так попробовал, открывается окно с ошибкой
-
извиняюсь, ошибся чуть:
for($nStr= 0, $nStr < TFCount("urls.txt") )
KEYDOWN(#Ctrl)
KEYPRESS(#C)
KEYUP(#Ctrl)
- копирует выделенный на экране текст в буфер? а что у Вас там выделено?
может вы хотите считанную из файла строку в буфер обмена вставить?
тогда toclip($sStr)
только непонятно, зачем.
-
извиняюсь, ошибся чуть:
for($nStr= 0, $nStr < TFCount("urls.txt") )
KEYDOWN(#Ctrl)
KEYPRESS(#C)
KEYUP(#Ctrl)
- копирует выделенный на экране текст в буфер? а что у Вас там выделено?
может вы хотите считанную из файла строку в буфер обмена вставить?
тогда toclip($sStr)
только непонятно, зачем.
Ctrl C лишние оказались, думал что нужно будет копировать строку в буфер и из буфера вставлять в браузер.
Скрипт заработал, но нужно что бы в текстовом файле 1, за один раз открывался первый урл ( яндекс),
в строку поисковика яндекса вписывались фразы из текстового файла 2 (сначала первая строка, в последующих циклах следующие строки)
Если яндекс решит что я спамер и предложит решить капчу, нажать клавишу Print Screen, открыть скайп, вставить картинку в сообщение другому человеку и ждать ответа, как только поступит ответ скопировать текст его сообщения и вставить в строку яндекс капчи ( не предлагайте антигейт, данный метод хоть и долгий но бесплатный )
Ищется фав иконка сайта в яндексе по всей странице
Если не нашло на первой странице, переходит на следующую кликом по слову далее ( наверно лучше это сделать через ещё один IF_PICTURE_IN )
Нашёл фав иконку, кликает со смещением курсора на область текста ссылки
Далее идёт инклюд с действиями на сайте
Закрывает браузер
Далее инклюд с чистилкой реестра
Открывает браузер и на последующих циклах вписывает следующую поисковую фразу в текстовом файле 2, действия те же что вначале. Закрывает браузер чистит реестр инклюдом
======================================================
Открывает браузер, вписывает следующую строку в текстовом файле 1 (google)
Действия те же что и с циклом яндекса, кроме отправки капчи по скайпу.
-
Скрипт заработал, но нужно что бы в текстовом файле 1, за один раз открывался первый урл ( яндекс),
в строку поисковика яндекса вписывались фразы из текстового файла 2 (сначала первая строка, в последующих циклах следующие строки)
Я же это уже написал в своём первом сообщении.
-
Скрипт заработал, но нужно что бы в текстовом файле 1, за один раз открывался первый урл ( яндекс),
в строку поисковика яндекса вписывались фразы из текстового файла 2 (сначала первая строка, в последующих циклах следующие строки)
Я же это уже написал в своём первом сообщении.
Пробовал его, тоже работает, но больше строк кода, у скрипта IO меньше строк.
-
так у меня только ответ на маленький конкретный вопрос. ответил, не глянув, что Vint выше написал)
-
SUB(read_zapros) //=============================================================
$zapros = TFREAD("zaprosi.txt", 1)
WAITMS(50)
TFDELETE("zaprosi.txt", 1)
WAITMS(50)
END_SUB
А как в этой части кода не удалять строчку, а идти последовательно от 1 до последнего запроса без удаления строчек ?
-
А как в этой части кода не удалять строчку, а идти последовательно от 1 до последнего запроса без удаления строчек ?
Писал именно так, как просил. Было лень объяснять, что читать и удалять строку это плохой и неудобный способ.
Скажем, даже устал объяснять. Лучше подождать пока человек сам до этого дойдёт. (прям анекдот вспомнился).
$brawser = "firefox.exe"
SUB(close) //===================================================================
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#W)
WAITMS (50)
KEYUP (#W)
KEYUP (#CTRL)
WAITMS(500)
END_SUB
//==============================================================================
SUB(open_find) //===============================================================
$zapros = STRREPLACE ($zapros, " ", "%20") // лечение пробелов
$param = STRCONCAT("yandex.ru/yandsearch?rpt=rad&text=", $zapros)
EXECUTE($brawser, $param)
WAITMS(2500)
END_SUB
//==============================================================================
// перебираем все строки файла "zaprosi.txt"
FOR($iter=1, $iter < TFCount("zaprosi.txt") + 1)
$zapros = TFREAD("zaprosi.txt", $iter) // читаем строку
WAITMS(50)
open_find() // ищем в Яндексе
// ищем пиксель
GETSCREEN
IF_PIXEL_IN(0,0,$_xmax,$_ymax, 255)
// нашёл ....
ELSE
KEYPRESS(#PRINTSCREEN)
WAITMS(700)
// дальше скайпы всякие
END_IF
close() // закрываем вкладку
END_CYC
HALT
-
Наверно задолбаю вас своими вопросами.
А как сделать что бы не по порядку шли запросы, а рандомно.
-
Наверно задолбаю вас своими вопросами.
А как сделать что бы не по порядку шли запросы, а рандомно.
Я думаю вопрос не окончательный :D поэтому писать ответ рано.
Нужен просто рандомный или рандомный, но чтоб не повторялся?
Там было упоминание о 10 запросах, где применяется это число 10? Или это уже устарело.
-
Рандом без повторений. А если запросы каждый раз добавляются, нельзя сделать что бы не было конкретного числа, или если не сложно укажите в коде что нужно будет поменять если количество меняется.
-
И ещё вопрос, как сделать так что бы был клик по текстовой форме сайта LCLICK(10,10), далее в эту форму вставлялись данные из текстового файла рандомная строчка без повтора.
-
По частям кое что известно, совместите всё вместе и добавьте что должно быть в коде если не трудно.
Открывает текстовый файл копирует 1 строчку в файле открывает браузер, вписывает яндекс с запросом,
$brawser = "firefox.exe"
SUB(close) //===================================================================
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#W)
WAITMS (50)
KEYUP (#W)
KEYUP (#CTRL)
WAITMS(500)
END_SUB
//==============================================================================
SUB(read_zapros) //=============================================================
$zapros = TFREAD("zaprosi.txt", 1)
WAITMS(50)
TFDELETE("zaprosi.txt", 1)
WAITMS(50)
END_SUB
//==============================================================================
SUB(open_find) //===============================================================
$zapros = STRREPLACE ($zapros, " ", "%20") // лечение пробелов
$param = STRCONCAT("yandex.ru/yandsearch?rpt=rad&text=", $zapros)
EXECUTE($brawser, $param)
WAITMS(2500)
END_SUB
FOR($iter=0, $iter < 10)
read_zapros() // читаем строку
open_find() // ищем в Яндексе
Ищет пиксел определённого цвета ( ЕСЛИ подходит идёт дальше, ЕСЛИ нет нажимал Print screen, кликал по программе на рабочем столе (скайп), вставлял картинку в сообщение, ждал пока пиксель сменится, копировал текст сообщения, открывал браузер, вставлял текст в поле) ,
GETSCREEN
IF_PIXEL_IN(0,0,$_xmax,$_ymax, 255)
// нашёл ....
ELSE
KEYPRESS(#PRINTSCREEN)
WAITMS(700)
#include "skype.cms"// скайп
END_IF
Если не нашёл пиксель определённого цвета ищет фав иконку и переходит по ссылке ( ЕСЛИ не нашёл прокручивает колёсико мыши, повторяет поиск фавиконки (4 раза (крутит мышь и ищет)), поиск другой картинки, клик по картинке, повтор (4 раза (крутить мышь и искать)),
FOR($i=0, $i < 5)
LCLICK(52,482)
GETSCREEN
IF_PICTURE_IN(59,100,173,735, "fav_1.bmp")
$i = 10
LCLICK($_return1 + RND(27,200), $_return2 + RND(3,10))
WAITMS(500)
#include "Shevrons_xp_firefox_sokr.cms"//Заходит на сайт и делает определённые действия
ELSE
WHEELDOWN(4)
WAITMS(700)
END_IF
END_CYC
IF($i ! 10)
GETSCREEN
IF_PICTURE_IN(125,215,680,300, "dalee.bmp")
LCLICK(RND($_return1,$_return1+50),RND($_return2,$_return2+10))
WAIT(7)
END_IF
END_IF
Закрываем браузер, открываем текстовый файл берём следующую поисковую фразу и зациклился 10 раз ( то есть 10 поисковых фраз набрал )
close() // закрываем вкладку
-
//==============================================================================
SUB(close) //-------------------------------------------------------------------
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#W)
WAITMS (50)
KEYUP (#W)
KEYUP (#CTRL)
WAITMS(500)
END_SUB
SUB(open_find) //---------------------------------------------------------------
$zapros = STRREPLACE ($zapros, " ", "%20") // лечение пробелов
$param = STRCONCAT("yandex.ru/yandsearch?rpt=rad&text=", $zapros)
EXECUTE($brawser, $param)
WAITMS(2500)
END_SUB
SUB(zaprosi_ini) //-------------------------------------------------------------
// заполняем массив номерами строк
$count1 = 1
$count2 = TFCOUNT("links.txt")
WHILE($count1 < $count2+1)
ARRPUSH($ARR, $count1)
INC($count1, 1)
END_CYC
// перемешиваем
$ARR_SIZE = ARRSIZE($ARR)
FOR ($i, $i<$ARR_SIZE*2)
$n1 = RND(0,$ARR_SIZE-1)
$n2 = RND(0,$ARR_SIZE-1)
$R = $ARR[$n1]
$ARR[$n1] = $ARR[$n2]
$ARR[$n2] = $R
END_CYC
END_SUB
//==============================================================================
$brawser = "firefox.exe"
zaprosi_ini()
FOR($iter=0, $iter < 10)
$zapros = ARRPOP($ARR) // получаем строку
open_find() // ищем в Яндексе
GETSCREEN
IF_PIXEL_IN(0,0,$_xmax,$_ymax, 255)
ELSE
KEYPRESS(#PRINTSCREEN)
WAITMS(700)
#include "skype.cms"// скайп
END_IF
FOR($i=0, $i < 5)
LCLICK(52,482)
GETSCREEN
IF_PICTURE_IN(59,100,173,735, "fav_1.bmp")
$i = 10
LCLICK($_return1 + RND(27,200), $_return2 + RND(3,10))
WAITMS(500)
#include "Shevrons_xp_firefox_sokr.cms"//Заходит на сайт и делает определённые действия
ELSE
WHEELDOWN(4)
WAITMS(700)
END_IF
END_CYC
IF($i ! 10)
GETSCREEN
IF_PICTURE_IN(125,215,680,300, "dalee.bmp")
LCLICK(RND($_return1,$_return1+50),RND($_return2,$_return2+10))
WAIT(7)
END_IF
END_IF
close() // закрываем вкладку
END_CYC
HALT
-
//==============================================================================
SUB(close) //-------------------------------------------------------------------
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#W)
WAITMS (50)
KEYUP (#W)
KEYUP (#CTRL)
WAITMS(500)
END_SUB
SUB(open_find) //---------------------------------------------------------------
$zapros = STRREPLACE ($zapros, " ", "%20") // лечение пробелов
$param = STRCONCAT("yandex.ru/yandsearch?rpt=rad&text=", $zapros)
EXECUTE($brawser, $param)
WAITMS(2500)
END_SUB
SUB(zaprosi_ini) //-------------------------------------------------------------
// заполняем массив номерами строк
$count1 = 1
$count2 = TFCOUNT("links.txt")
WHILE($count1 < $count2+1)
ARRPUSH($ARR, $count1)
INC($count1, 1)
END_CYC
// перемешиваем
$ARR_SIZE = ARRSIZE($ARR)
FOR ($i, $i<$ARR_SIZE*2)
$n1 = RND(0,$ARR_SIZE-1)
$n2 = RND(0,$ARR_SIZE-1)
$R = $ARR[$n1]
$ARR[$n1] = $ARR[$n2]
$ARR[$n2] = $R
END_CYC
END_SUB
//==============================================================================
$brawser = "firefox.exe"
zaprosi_ini()
FOR($iter=0, $iter < 10)
$zapros = ARRPOP($ARR) // получаем строку
open_find() // ищем в Яндексе
GETSCREEN
IF_PIXEL_IN(0,0,$_xmax,$_ymax, 255)
ELSE
KEYPRESS(#PRINTSCREEN)
WAITMS(700)
#include "skype.cms"// скайп
END_IF
FOR($i=0, $i < 5)
LCLICK(52,482)
GETSCREEN
IF_PICTURE_IN(59,100,173,735, "fav_1.bmp")
$i = 10
LCLICK($_return1 + RND(27,200), $_return2 + RND(3,10))
WAITMS(500)
#include "Shevrons_xp_firefox_sokr.cms"//Заходит на сайт и делает определённые действия
ELSE
WHEELDOWN(4)
WAITMS(700)
END_IF
END_CYC
IF($i ! 10)
GETSCREEN
IF_PICTURE_IN(125,215,680,300, "dalee.bmp")
LCLICK(RND($_return1,$_return1+50),RND($_return2,$_return2+10))
WAIT(7)
END_IF
END_IF
close() // закрываем вкладку
END_CYC
HALT
Вместо запросов в файле открывается сначала 1 вместо запроса, проходит 2.5 секунды потом 2.
Он не успевает проверить есть ли фавикон и сразу идёт к другому запросу
-
//==============================================================================
SUB(close) //-------------------------------------------------------------------
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#W)
WAITMS (50)
KEYUP (#W)
KEYUP (#CTRL)
WAITMS(500)
END_SUB
SUB(open_find) //---------------------------------------------------------------
$zapros = STRREPLACE ($zapros, " ", "%20") // лечение пробелов
$param = STRCONCAT("yandex.ru/yandsearch?rpt=rad&text=", $zapros)
EXECUTE($brawser, $param)
WAITMS(2500)
END_SUB
SUB(zaprosi_ini) //-------------------------------------------------------------
// заполняем массив номерами строк
$count1 = 1
$count2 = TFCOUNT("links.txt")
WHILE($count1 < $count2+1)
ARRPUSH($ARR, $count1)
INC($count1, 1)
END_CYC
// перемешиваем
$ARR_SIZE = ARRSIZE($ARR)
FOR ($i, $i<$ARR_SIZE*2)
$n1 = RND(0,$ARR_SIZE-1)
$n2 = RND(0,$ARR_SIZE-1)
$R = $ARR[$n1]
$ARR[$n1] = $ARR[$n2]
$ARR[$n2] = $R
END_CYC
END_SUB
//==============================================================================
$brawser = "firefox.exe"
zaprosi_ini()
FOR($iter=0, $iter < 10)
$zapros = TFREAD("zaprosi.txt", ARRPOP($ARR)) // читаем строку
WAITMS(100)
open_find() // ищем в Яндексе
GETSCREEN
IF_PIXEL_IN(0,0,$_xmax,$_ymax, 255)
ELSE
KEYPRESS(#PRINTSCREEN)
WAITMS(700)
#include "skype.cms"// скайп
END_IF
FOR($i=0, $i < 5)
LCLICK(52,482)
GETSCREEN
IF_PICTURE_IN(59,100,173,735, "fav_1.bmp")
$i = 10
LCLICK($_return1 + RND(27,200), $_return2 + RND(3,10))
WAITMS(500)
#include "Shevrons_xp_firefox_sokr.cms"//Заходит на сайт и делает определённые действия
ELSE
WHEELDOWN(4)
WAITMS(700)
END_IF
END_CYC
IF($i ! 10)
GETSCREEN
IF_PICTURE_IN(125,215,680,300, "dalee.bmp")
LCLICK(RND($_return1,$_return1+50),RND($_return2,$_return2+10))
WAIT(7)
END_IF
END_IF
close() // закрываем вкладку
END_CYC
HALT
Чтение строки поправил.
А что там с "не успевает" я не в курсе. Задержки нужно править. Тем более там два чёрных ящика под #include
-
Теперь лучше с запросом, но всё равно ошибка с нахождением фавикона,
он крутит мышь несколько раз (даже не доходит до конца страницы), не находит. Далее накладывается второй запрос.
-
он крутит мышь несколько раз (даже не доходит до конца страницы), не находит. Далее накладывается второй запрос.
Ну так больше поставь.
И вместо WHEELDOWN удобней использовать Page Down. Потому как прокрутка СКМ зависит от того, где находится курсор мыши.
не находит
Проверь нахождение отдельно. Стабильно ли находит образец там где нужно.
-
Поставил больше прокруток (7), теперь он крутит первую страницу, не находит переходит к следующей странице, закрывает браузер не найдя фавикон ( нужно что бы это действие зациклилось пока не найдёт фавиконку не важно на какой странице она будет первой или 40й )
Переходит к следующей поисковой фразе.
Отдельно инклюд идёт отлично. Но даже если убрать все инклюды всё равно проблема остаётся. Курсор не мешает поиску фавикона
-
Поставил больше прокруток (7), теперь он крутит первую страницу, не находит переходит к следующей странице, закрывает браузер не найдя фавикон (
Как ты написал, так оно и делает.
Если не нашёл пиксель определённого цвета ищет фав иконку и переходит по ссылке ( ЕСЛИ не нашёл прокручивает колёсико мыши, повторяет поиск фавиконки (4 раза (крутит мышь и ищет)), поиск другой картинки, клик по картинке, повтор (4 раза (крутить мышь и искать)),
Закрываем браузер, открываем текстовый файл берём следующую поисковую фразу и зациклился 10 раз ( то есть 10 поисковых фраз набрал )
Можешь вот это нормально переписать, чтобы стало понятно что нужно. Были понятны все циклы и условия.
( нужно что бы это действие зациклилось пока не найдёт фавиконку не важно на какой странице она будет первой или 40й )
А если не найдёт совсем? Ни на 40-й ни на сотой?
-
Открытие браузера и написание поисковой фразы отлично сделано.
Цикл
Нужно что бы действие с поиском фавикона и переход к следующей странице зациклилось допустим 50 раз, кликнул со сдвигом, далее инклюд
Условие
если не нашёл вообще фавикон на 50 раз то закрыл браузер и перешёл к следующей поисковой фразе.
Условие закрыто
Цикл закрыт
-
$brawser = "firefox.exe"
$max_count = 50 // столько страниц ищем
zaprosi_ini()
FOR($iter=0, $iter < 10)
$zapros = TFREAD("zaprosi.txt", ARRPOP($ARR)) // читаем строку
WAITMS(100)
open_find() // ищем в Яндексе
GETSCREEN
IF_PIXEL_IN(0,0,$_xmax,$_ymax, 255)
ELSE
KEYPRESS(#PRINTSCREEN)
WAITMS(700)
#include "skype.cms"// скайп
END_IF
$find_count = 0
WHILE($find_count < $max_count)
INC($find_count)
FOR($i=0, $i < 5)
LCLICK(52,482)
GETSCREEN
IF_PICTURE_IN(59,100,173,735, "fav_1.bmp")
$find_count = $max_count + 100
$i = 10
LCLICK($_return1 + RND(27,200), $_return2 + RND(3,10))
WAITMS(500)
#include "Shevrons_xp_firefox_sokr.cms"//Заходит на сайт и делает определённые действия
ELSE
WHEELDOWN(4)
WAITMS(700)
END_IF
END_CYC
IF($find_count < $max_count)
GETSCREEN
IF_PICTURE_IN(125,215,680,300, "dalee.bmp")
LCLICK(RND($_return1,$_return1+50),RND($_return2,$_return2+10))
WAIT(7)
END_IF
END_IF
END_CYC
close() // закрываем вкладку
END_CYC
HALT
-
Часть с инклюдом скайпа, не работает.
Специально сделал в условии нахождение пикселя которого нет вообще на этом месте, а он всё равно якобы его нашёл и продолжает часть скрипта которая должна быть при появлении этого пикселя (такого цвета там не может быть точно)
//==============================================================================
SUB(close) //-------------------------------------------------------------------
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#W)
WAITMS (50)
KEYUP (#W)
KEYUP (#CTRL)
WAITMS(500)
END_SUB
SUB(open_find) //---------------------------------------------------------------
$zapros = STRREPLACE ($zapros, " ", "%20") // лечение пробелов
$param = STRCONCAT("yandex.ru/yandsearch?rpt=rad&text=", $zapros)
EXECUTE($brawser, $param)
WAITMS(10000)
END_SUB
SUB(zaprosi_ini) //-------------------------------------------------------------
// заполняем массив номерами строк
$count1 = 1
$count2 = TFCOUNT("1.txt")
WHILE($count1 < $count2+1)
ARRPUSH($ARR, $count1)
INC($count1, 1)
END_CYC
// перемешиваем
$ARR_SIZE = ARRSIZE($ARR)
FOR ($i, $i<$ARR_SIZE*2)
$n1 = RND(0,$ARR_SIZE-1)
$n2 = RND(0,$ARR_SIZE-1)
$R = $ARR[$n1]
$ARR[$n1] = $ARR[$n2]
$ARR[$n2] = $R
END_CYC
END_SUB
//==============================================================================
$brawser = "Firefox.exe"
$max_count = 50 // столько страниц ищем
zaprosi_ini()
FOR($iter=0, $iter < 10)
$zapros = TFREAD("2.txt", ARRPOP($ARR)) // читаем строку
WAITMS(100)
open_find() // ищем в Яндексе
WAIT(5)
GETSCREEN
IF_PIXEL_IN(3,101,15,108, 3667543)
ELSE
KEYPRESS(#PRINTSCREEN)
LCLICK(1013,14)
WAITMS(700)
#include "skype.cms"// скайп
END_IF
$find_count = 0
WHILE($find_count < $max_count)
INC($find_count)
FOR($i=0, $i < 5)
LCLICK(52,482)
GETSCREEN
IF_PICTURE_IN(46,159,174,737, "logo_shevrons.bmp")
$find_count = $max_count + 100
$i = 10
LCLICK($_return1 + RND(27,200), $_return2 + RND(3,10))
WAITMS(500)
#include "Shevrons_xp_firefox_sokr.cms"//Заходит на сайт и делает определённые действия
ELSE
WHEELDOWN(7)
WAITMS(700)
END_IF
END_CYC
IF($find_count < $max_count)
GETSCREEN
IF_PICTURE_IN(6,155,1003,734, "dalee.bmp")
LCLICK(RND($_return1,$_return1+50),RND($_return2,$_return2+10))
WAIT(7)
END_IF
END_IF
END_CYC
close() // закрываем вкладку
END_CYC
HALT
-
И что нужно понять из повторенного скрипта?
Ты хоть предметно укажи, что и где не так выполняется.
Избегай общих терминов: "этого пикселя", "пиксел определённого цвета", "поиск другой картинки", "клик по картинке".
Это прокатывает только при самой элементарной задаче и пока в обсуждении нет никакого кода.
Раз запостил скрипт, так и пиши (пример): при ненахождении пиксела в строке 51, должны выполняться строки такие-то и такие-то..., а выполняются строки №..., №... и т.д.
Специально сделал в условии нахождение пикселя которого нет вообще на этом месте, а он всё равно якобы его нашёл и продолжает часть скрипта которая должна быть при появлении этого пикселя (такого цвета там не может быть точно)
Должно, не должно... точно не точно... как показывает практика, человек некоторые вещи склонен упускать, а некоторые додумывать.
Ты проставь строки вывода в лог и увидишь где выполняется и где нет. Что точно находит, а что не находит. Без предположений. Это и есть отладка это нормальный процесс.
Часть с инклюдом скайпа, не работает.
Ну так возможна проблема и внутри этого "невидимого" инклюда.
Просто вот в этом куске кода:
GETSCREEN
IF_PIXEL_IN(3,101,15,108, 3667543)
ELSE
KEYPRESS(#PRINTSCREEN)
LCLICK(1013,14)
WAITMS(700)
#include "skype.cms"// скайп
END_IF
путаться особо нечему. Если пиксел находит, он пропускает условие и переходит на выполнение строки 59.
если не находит, то давит #PRINTSCREEN, кликает в (1013,14), выполняет #include и дальше переходит на стр. 59
Сори, но очень тяжело с такими описаниями. С некоторыми людьми легко обсуждать написание скрипта по поставленной задаче. С некоторыми сложно. А с некоторыми бывает невозможно. Замечу, что все они далеки от написания кода в равной степени. Речь только о формулировке задачи. Наверно это только от склада ума зависит. Техники там, гуманитарии... может ещё какие классы придумали.
Как решать этот вопрос я не знаю. Но при неблагоприятном сочетании времени уходит просто уйма.
Stereotipchik это не тебе лично, это общее философствование. Сори что в этой теме. Просто пока мысленно погрузился.
Страшная история.
[spoiler]Месяца три назад, взялся я помочь с маленьким... хм... вопросом человеку. Связанному с распознаванием чисел в его задаче.
Ну так пол дня у меня ушло, чтобы добиться и он прислал мне хоть один скрин в несжатом виде. +как всегда объяснение почему через ВК нужно присылать PNG только как документ.
Попросил прислать образцы чисел, чтоб собрать варианты ВСЕХ цифр.
С самого начала просил, чтобы скринов было много и каждая цифра встречалась хотя бы в 2-3 вариантах, для подбора колормода и %.
После ещё одного ЦЕЛОГО ДНЯ мучений я наконец то получил штук 15 скринов чисел (и то не хватало двух цифр совсем ;D и пара была в 1 экземпляре).
Человек упорно путал числа и цифры. После двух объяснений, он ответил что он всё правильно понимает и знает разницу, но до конца общения он так и не переставал путать одно с другим.
Ладно, 1.5 дня минус. Коту под хвост, а мы ещё только в точке старта ;D
Рассчитал те что были, выслал правленый скрипт и опять напомнил, что 2 цифры наладить не могу, т.к. их он мне до сих пор не прислал. Он отписался что находит нормально но на некоторых ошибается, как раз тех что не хватает. И опять ждёт. Я ему опять говорю, вышли мол 8 и 6.
Тут важный момент №1. Колормод подходил только уровня 7.
Наконец-то присылает мне ещё штук 20 скринов, но числа на них красного цвета, а были до сих пор жёлтого. И работали и подбирали под эти жёлтые.
... что, как, моё недоумение... ответ: это есть не один сайт, а несколько и могут быть то жёлтые, то красные, но работать должно на всех. Ну для начала хотя бы на жёлтых. :-\ :o
После мудоханья (иначе не назовёшь) со вторым набором, пришёл к выводу, что что-то не так, у цифр разные режимы сглаживания. Спрашиваю скрины делались на одной системе и браузере или на разных.
- На разных.
Оказалось, что 50% скринов подделаны автором!!! Т.е. Он просто часть цифр в фотошопе размножил и наложил на другие скрины при этом с разных источников и со сдвигами.
В итоге дня три мы прос... потратили впустую. Там делов то было на пару часов с перекурами.
После этого я месяц шарахался от любых просьб. А от платных шарахаюсь до сих пор.
Сразу представляю, что в том случае возникают требования заказчика. А помощи и предоставления данных никакой.[/spoiler]
-
Не поверите, но всё заработало, поменял в проверке цвета пикселя на другой цвет, спасибо большое ! И конечно спасибо за терпение !!!
-
Почему же, поверим :D ;D
-
Проверил с запросом в котором 2 слова - работает. С запросом в 3 слова получается так что в первой вкладке открывает 2 слова, во второй 3 слово которое не влезло. Как исправить подскажите.
-
Проверил с запросом в котором 2 слова - работает. С запросом в 3 слова получается так что в первой вкладке открывает 2 слова, во второй 3 слово которое не влезло. Как исправить подскажите.
Продублировать строку
$zapros = STRREPLACE ($zapros, " ", "%20") // лечение пробелов
А лучше заменить на лечение любого количества пробелов так
// лечение пробелов
WHILE(STRPOS($zapros, " ") > 0)
$zapros = STRREPLACE ($zapros, " ", "%20")
END_CYC
-
последний вариант не рабочий, Vint походу с другим языком спутал.
strpos же возвращает позицию первого вхождения, не количество оных
____
потом мой пост сотри безжалостно
-
последний вариант не рабочий, Vint походу с другим языком спутал.
strpos же возвращает позицию первого вхождения, не количество оных
____
потом мой пост сотри безжалостно
Да, точно. Последний убрал из ответа.
-
Спасибо, помогло