Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: rulentus on March 05, 2015, 07:48:05 PM

Title: Работа с вебстраницей
Post by: rulentus on March 05, 2015, 07:48:05 PM
Добрый день. Очень здоровская програмулина но у меня возник вопрос.
У меня есть необходимость кликать на определённую конпку на странице но таких кнопок может быть от 0 до 10 на странице + сама страница в сам экран не попадает полностью(это вообще важно?). нужно скролить её вниз для поиске кнопок а так же нажать на кнопку один раз если там нету лайка(то есть кнопка нажата не была) и дважды если там лайк стоит. Возможно ли это и мог бы кто то помочь в вопросе открытия "Help". Нажимаю на "Help" а там пусто....
Зарание благодарен за любую помощь!
Title: Re: Работа с вебстраницей
Post by: Oraven on March 05, 2015, 09:05:50 PM
Code: (clickermann) [Select]
$time = $_time_t + 5
WHILE($time > $_time_t)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Лайк.bmp")
      $time = $_time_t + 5
      MOVE($_return1+3, $_return2+3)
      WAITMS(60)
      LCLICK($_return1+3, $_return2+3)
      MOVE(60,200)
      WAITMS(1000)
   Else
      WHEELDOWN(3) // если лайка нет то кручу
      WAITMS(500)
   END_IF
END_CYC
Title: Re: Работа с вебстраницей
Post by: rulentus on March 06, 2015, 09:05:27 AM
kiril, Oraven Огромное Вам спасибо
Title: Re: Работа с вебстраницей
Post by: rulentus on March 10, 2015, 04:35:02 PM
Добрый день еще раз. Мне очень помогли Ваши советы.
Я пытался доработать тот вариант который мне посоветовал  Oraven и соорудил что то в таком духе
Code: (clickermann) [Select]
$time = $_time_t + 5
WHILE($time > $_time_t)
GETSCREEN
IF_PICTURE_IN (700,250, 1300,720, "Лайк.bmp") // Картинка для одиночного клика
  $time = $_time_t + 5
      MOVE($_return1+3, $_return2+3)
        WAITMS(500)
          LCLICK($_return1+3, $_return2+3)
          WHEELDOWN(2)
          MOVE(1175,800)
          WAITMS(1500)     
  Else
      WHEELDOWN(2) // если лайка нет то кручу
        WAITMS(500)
        END_IF
        GETSCREEN
  IF_PICTURE_IN (700,120, 1300,650, "Лайка.bmp") // картинка для двойного клика
  $time = $_time_t + 5
      MOVE($_return1+3, $_return2+3)
        WAITMS(500)
          LCLICK($_return1+3, $_return2+3)
          WAITMS(500)
          LCLICK($_return1+3, $_return2+3) // Пробовал функцию даблклик но она мне показалась хуже такого варианта
          WHEELDOWN(2)
          MOVE(1175,800)
          WAITMS(1500)
  Else
      WHEELDOWN(2) // если лайка нет то кручу
        WAITMS(500)
  END_IF
END_CYC

И еще вопрос. Как заставить кликер перходить на следующую страницу для продолжения этого процесса. Это надо писать функцию на тригер-рисунок в конце страницы а потом что бы мышка выбирала поле адреса в веб браузере и задействовав клавиатуру увеличивать число страницы каждый раз на 1?

UPDATE: Вроде догадался. добавил в уравнение ещё одно условие с картинкой (стрелка на след страницу).
Но так как там нужен один клик то может будет уместно добавить в первое условие. только вот как.... Не могу синтаксис подобрать!
Title: Re: Работа с вебстраницей
Post by: rulentus on March 11, 2015, 02:42:26 PM
В общем всё работает.  Я очень благодарен за помощь.
Вот что в итоге у меня вышло. может кому то поможет чем то
Code: (clickermann) [Select]
// New Script
WHILE($count < 300)
GETSCREEN (100,100, 1600,900)
IF_PICTURE_IN (700,120, 1300,650, "След.bmp") // Следующая страница
      MOVE($_return1+3, $_return2+3)
        WAITMS(50)
          LCLICK($_return1+3, $_return2+3)
            MOVE(1800,900)   
  Else
      WHEELDOWN(1)
        WAITMS(2300)
        END_IF
GETSCREEN (100,100, 1600,900)
IF_PICTURE_IN (700,120, 1300,650, "Лайк.bmp")   // ненажатый лайк
      MOVE($_return1+3, $_return2+3)
        WAITMS(500)
          LCLICK($_return1+3, $_return2+3)
          $count = $count + 1
          WHEELDOWN(3)
          MOVE(1800,900)     
        END_IF
        GETSCREEN (100,100, 1600,900)
  IF_PICTURE_IN (700,120, 1300,650, "Лайка.bmp")  // Нажатый лайк(Релайкнуть) 
    MOVE($_return1+3, $_return2+3)
      WAITMS(500)
          LCLICK($_return1+3, $_return2+3)
          WAITMS(500)
          LCLICK($_return1+3, $_return2+3)
          $count = $count + 1
          WHEELDOWN(3)
          MOVE(1800,900)
        END_IF
END_CYC

Единственно е еще было бы круто привязать это к окну браузера мозила что бы я мог его свернуть и заниматся другими делами. hwnd то я знаю а вот куда его.....
P.S. Блин. надо задонатить.
Title: Re: Работа с вебстраницей
Post by: ezfalcon on March 17, 2015, 02:45:18 PM
Единственно е еще было бы круто привязать это к окну браузера мозила что бы я мог его свернуть и заниматся другими делами. hwnd то я знаю а вот куда его.....
P.S. Блин. надо задонатить.

Ты же не Робинзон Крузо, зачем велосипеды изобретать. Есть множество решений для автоматизации работы браузеров, предназначенных специально для анализа веб-страниц и перехода по ссылкам, например PhantomJS.

Clickermann - универсальный инструмент. В ситуациях, когда нет тривиального решения задачи автоматизации он приходит на помощь. Ты же не пользуешься для готовки обеда дома универсальным складным ножом для путешествий.
Title: Re: Работа с вебстраницей
Post by: rulentus on March 18, 2015, 09:20:43 PM
Ну для таких начинающих как я это довольно сложно на смом деле. Мало опыта в JS. так что поэтому и спрашивал.

Я дико извиняюсь но я наверно слепой или идиот. не могу найти как вызывать подпрограммы и как их правильно оформлять в коде.
Хотелось бы облагородить свои 500+ строк просто.
Да и в идее написать 5-6 таких скриптов и их рандомно вызывать.
Title: Re: Работа с вебстраницей
Post by: Oraven on March 19, 2015, 06:46:42 AM
В справке, раздел Основные конструкции.
Title: Re: Работа с вебстраницей
Post by: rulentus on March 19, 2015, 02:42:46 PM
ОООк. я видимо офрмлял всё правильно но вот делал не верно.
суть в том что мне нужно вызвать подпрограмму, в которой стоит рандомизатор и Switch и энное кол-во Case-оф
ну примерно что то такое:
Code: (clickermann) [Select]
SUB(rand, $rnd_click)
$rnd_click = (rnd(1, 100)) // к примеру до 100
SWITCH($r)
CASE(1)
LCLICK
CASE(2)
LCLICK
CASE // и тд

DEFAULT
END_SWITCH
WAITMS(5000)
END_SUB


что то не так ибо не пашет вызов ни с параметром ни без..... :'(
Title: Re: Работа с вебстраницей
Post by: Vint on March 19, 2015, 03:04:01 PM
ОООк. я видимо офрмлял всё правильно но вот делал не верно.
суть в том что мне нужно вызвать подпрограмму, в которой стоит рандомизатор и Switch и энное кол-во Case-оф
ну примерно что то такое:
Code: (clickermann) [Select]
SUB(rand, $rnd_click)
$rnd_click = (rnd(1, 100)) // к примеру до 100
SWITCH($r)
CASE(1)
LCLICK
CASE(2)
LCLICK
CASE // и тд

DEFAULT
END_SWITCH
WAITMS(5000)
END_SUB


что то не так ибо не пашет вызов ни с параметром ни без..... :'(

А как ты это определяешь? Что должен сделать этот скрипт?
Спрашиваю, потому как это полуфабрикат. Эта подпрограмма генерирует случайное число (у себя в мозгах)... ждёт 5 секунд и завершается.

Почему LCLICK без параметров?
Что такое $r? может ты хотел  SWITCH($rnd_click)  ?
Title: Re: Работа с вебстраницей
Post by: rulentus on March 19, 2015, 03:41:31 PM
Да там $rnd_click. тупанул. LCLICK без параметров просто для примера. там они есть
В целом этот блок кода должен выбрать поведение мышки(клики, перемешения и тд) из заданного числа вариантов.

Ну я в принципе понял что она возращает просто число. я хотел понять как мне вернуть рандомное поведение
Title: Re: Работа с вебстраницей
Post by: Vint on March 19, 2015, 04:02:50 PM
проставь переменную правильно, удали передачу параметра и всё заработает
[spoiler]
Code: (clickermann) [Select]
SUB(rand)
   $rnd_click = (rnd(1, 10))
   SWITCH($rnd_click)
   CASE(1)
      MOVE($rnd_click*100, 500)
   CASE(2)
      MOVE($rnd_click*100, 500)
   CASE(3)
      MOVE($rnd_click*100, 500)
   CASE(4)
      MOVE($rnd_click*100, 500)
   CASE(5)
      MOVE($rnd_click*100, 500)
   CASE(6)
      MOVE($rnd_click*100, 500)
   CASE(7)
      MOVE($rnd_click*100, 500)
   CASE(8)
      MOVE($rnd_click*100, 500)
   CASE(9)
      MOVE($rnd_click*100, 500)
   CASE(10)
      MOVE($rnd_click*100, 500)
   END_SWITCH
   WAITMS(400)
END_SUB

rand()
[/spoiler]

Если тебе только клики по случайным парам, почему не зделаешь как здесь?  http://crapware.aidf.org/forum/index.php?topic=319.msg10901#msg10901

типа
Code: (clickermann) [Select]
SUB(rand)
   $r = RND(0,ARRSIZE($arr)/2-1)
   $mode = RND(1,2)
   
   SWITCH($mode)
   CASE(1)
      LCLICK($arr[$r*2], $arr[$r*2+1])
   CASE(2)
      MOVE($arr[$r*2], $arr[$r*2+1])
   END_SWITCH
   WAITMS(RND(300,1000))
END_SUB

STRSEPARATE("100:110:200:210:300:310:400:410:500:510:600:610:700:710:800:810:900:910:1000:1010", ":", $arr)
WHILE(1)
   rand()
END_CYC
Title: Re: Работа с вебстраницей
Post by: rulentus on March 19, 2015, 04:37:24 PM
Да я и в кликах там рандомил. типа хитрый :P. Не знаю насколько оно помогает не спалить себя, но типа смысл имитации действия человека.
Спс за совет. вечером буду пробовать. убегать нужно(
Title: Re: Работа с вебстраницей
Post by: rulentus on March 31, 2015, 02:57:04 PM
И снова здравствуйте!

Допиливал пару недель на досуге свои скрипты довольно удачно и у меня возник вопрос

Есть тот же скрипт но в него надо добавить таймер
Суть такая. есть количество лайков которые доступны в час. то есть лимит скажем в 100
мой скрипт их считает и останавливается на нужном количестве.
Как это сделать лучше? Подпотоком или в самом скрипте как то...?
То есть скрипт работает и ставит лайки. вместе с ним идёт отсчет часа времени и когда лайки закончились , он останавливается и ждет оставшееся время. и когда час проходит он продолжает ставить лайки.
Title: Re: Работа с вебстраницей
Post by: Oraven on March 31, 2015, 03:40:00 PM
И снова здравствуйте!

Допиливал пару недель на досуге свои скрипты довольно удачно и у меня возник вопрос

Есть тот же скрипт но в него надо добавить таймер
Суть такая. есть количество лайков которые доступны в час. то есть лимит скажем в 100
мой скрипт их считает и останавливается на нужном количестве.
Как это сделать лучше? Подпотоком или в самом скрипте как то...?
То есть скрипт работает и ставит лайки. вместе с ним идёт отсчет часа времени и когда лайки закончились , он останавливается и ждет оставшееся время. и когда час проходит он продолжает ставить лайки.

Вот
INC($count,1) тебе нужно поместить в условия клика по лайку, например перед LCLICK

Code: (clickermann) [Select]
IF($time < $_time_t) // обнуление счетчика раз в час
   $count = 0
   $time = $_time_t + 3600
END_IF
IF($count < 100) // не более 100 проходов за час
   
   // тут твой скрипт
   INC($count,1)
END_IF
WAITMS(500)
Title: Re: Работа с вебстраницей
Post by: Vint on March 31, 2015, 03:44:27 PM
Конечно лучше сразу там и считать и время учитывать.

И наверно, для безопасности лучше начать отсчёт времени (а попросту паузу на час) после сотого лайка.
Или ты знаешь как на сервере учёт идёт, чтобы считать от первого? Но там диапазон между лайками разный...
Короче, проще обычный цикл FOR на 100 и пауза на час.
Title: Re: Работа с вебстраницей
Post by: Vint on March 31, 2015, 03:48:22 PM
Пока писал... Ну вот вариант идеального учёта от первого лайка в часе.
А если они считают не прошедшее время, а именно в 00 минут сбрасывают?
Или вариант, если учитывается время каждого лайка, с накоплением очереди. У нас может быть ситуация: первый проход долго искало последующие лайки, листало, выбирало. А во втором часе всё быстрее и мы не впишемся.

Предлагаю
Code: (clickermann) [Select]
FOR($i=0, $i<100)
// ставим лайки
END_CYC
WAIT(3600)
Title: Re: Работа с вебстраницей
Post by: rulentus on March 31, 2015, 04:23:03 PM
Ну там либо лаки каждый час обновляются типа 9.00, 10.00 и тд либо с первого лайка считает час.
Я уже  99 процентов знаю что в час укладываюсь легко. чаще быстрее. то есть в час вписываемся по любому.
Час ждать после проходов довольно долго. можно конечно меньше но хз.
Я в самом финальном итоге этого скрипта хочу что бы я с утра забив в скрипт адреса тем с лайками мог бы на это уже не отвлекаться и писать еще чот)) ну а он бы лайкал одну тему там часа 2 потом вторую и тд

Oraven подставляю туда 3 для проверки и не фурычит чот. не прерывает после 3х секунд или 3х лайков
чот не могу норм отформатировать тут. в коде всё ок

Code: (clickermann) [Select]
IF($time < $_time_t)
   $count = 0
   $time = $_time_t + 3
END_IF

WHILE($count < 3)
GETSCREEN (100,65, 1300,700)
IF_PICTURE_IN (1000,80, 1300,450, "nextpage.bmp")
          MOVE($_return1+3, $_return2+3)
          WAITMS(50)
          LCLICK($_return1+3, $_return2+3)
          MOVE(1200,600)
  WAITMS(2000)   
       Else
    WHEELDOWN(2)
      WAITMS(2000)
       END_IF
       GETSCREEN (100,65, 1300,700)
       IF_PICTURE_IN (1000,80, 1300,450, "like.bmp")
         MOVE($_return1+3, $_return2+3)
    WAITMS(500)
         LCLICK($_return1+3, $_return2+3)
         INC($count,1)
         WAITMS(500)
         WHEELDOWN(3)
         MOVE(1200,600)     
       END_IF
       GETSCREEN (100,65, 1300,700)
       IF_PICTURE_IN (1000,80, 1300,450, "relike.bmp")
    MOVE($_return1+3, $_return2+3)
  WAITMS(500)
         LCLICK($_return1+3, $_return2+3)
         WAITMS(500)
         LCLICK($_return1+3, $_return2+3)
        INC($count,1)
        WAITMS(500)
        WHEELDOWN(3)
        MOVE(1200,600)
      END_IF
      IF ($count = 3)
  HINTPOPUP("Finish", "Status")
      END_IF
END_CYC
Title: Re: Работа с вебстраницей
Post by: Oraven on March 31, 2015, 05:18:47 PM
Oraven подставляю туда 3 для проверки и не фурычит чот. не прерывает после 3х секунд или 3х лайков
чот не могу норм отформатировать тут. в коде всё ок

Все правильно, только 3 секунды мало, у тебя там 2х секундные задержки плюс полсекундные * на 3 выходит 7-8 секунд на 3 повтора. Таймер уже давно обнулится.

Вот верный код, кстати в твоем случаи область для GETSCREEN не нужно указывать.
Здесь за 30 секунд выполняется не более 3х лайков,
Code: (clickermann) [Select]
IF($time < $_time_t)
   $count = 0
   $time = $_time_t + 30 // выделяемое время в секундах
END_IF

IF($count < 3) // количество лайков
   GETSCREEN
   IF_PICTURE_IN (1000,80, 1300,450, "nextpage.bmp")
      MOVE($_return1+3, $_return2+3)
      WAITMS(50)
      LCLICK($_return1+3, $_return2+3)
      MOVE(1200,600)
      WAITMS(2000)
   Else
      WHEELDOWN(2)
      WAITMS(2000)
   END_IF
   GETSCREEN
   IF_PICTURE_IN (1000,80, 1300,450, "like.bmp")
      MOVE($_return1+3, $_return2+3)
      WAITMS(500)
      LCLICK($_return1+3, $_return2+3)
      INC($count,1)
      WAITMS(500)
      WHEELDOWN(3)
      MOVE(1200,600)
   END_IF
   IF_PICTURE_IN (1000,80, 1300,450, "relike.bmp")
      MOVE($_return1+3, $_return2+3)
      WAITMS(500)
      LCLICK($_return1+3, $_return2+3)
      WAITMS(500)
      LCLICK($_return1+3, $_return2+3)
      INC($count,1)
      WAITMS(500)
      WHEELDOWN(3)
      MOVE(1200,600)
   END_IF
ELSE
   WAITMS(500)
END_IF
Title: Re: Работа с вебстраницей
Post by: rulentus on March 31, 2015, 06:35:57 PM
Да. действительно чот я пропустил этот момент. спасибо что напрвили на путь истины!
Пойду дальше допиливать.
Title: Re: Работа с вебстраницей
Post by: rulentus on March 31, 2015, 08:04:06 PM
Блин. прикол какой то
хотел прикрутить что то типа  такого
Code: (clickermann) [Select]
LCLICK(166,75)
MOVE(165,75)
wait(5)
KEYSTRING("вебадрес", 50)
KEYPRESS (#ENTER)
move(210,440)
wait(5)

к коду выше в начало а скрипт вводит адрес, прокручивает вниз один раз и снова вводит адрес и тд.....
у меня просто есть скрипт с Кейстрингом но он выполняет все по порядку, как и задуманно.
Title: Re: Работа с вебстраницей
Post by: Oraven on March 31, 2015, 08:51:37 PM
Code: (clickermann) [Select]
//==== Начальные действия =====================

LCLICK(166,75)
MOVE(165,75)
wait(5)
KEYSTRING("вебадрес", 50)
KEYPRESS (#ENTER)
move(210,440)
wait(5)

//===== Зацикленные действия ==================

start:

IF($time < $_time_t)
   $count = 0
   $time = $_time_t + 30 // выделяемое время в секундах
END_IF

IF($count < 3) // количество лайков
   GETSCREEN
   IF_PICTURE_IN (1000,80, 1300,450, "nextpage.bmp")
      MOVE($_return1+3, $_return2+3)
      WAITMS(50)
      LCLICK($_return1+3, $_return2+3)
      MOVE(1200,600)
      WAITMS(2000)
   Else
      WHEELDOWN(2)
      WAITMS(2000)
   END_IF
   GETSCREEN
   IF_PICTURE_IN (1000,80, 1300,450, "like.bmp")
      MOVE($_return1+3, $_return2+3)
      WAITMS(500)
      LCLICK($_return1+3, $_return2+3)
      INC($count,1)
      WAITMS(500)
      WHEELDOWN(3)
      MOVE(1200,600)
   END_IF
   IF_PICTURE_IN (1000,80, 1300,450, "relike.bmp")
      MOVE($_return1+3, $_return2+3)
      WAITMS(500)
      LCLICK($_return1+3, $_return2+3)
      WAITMS(500)
      LCLICK($_return1+3, $_return2+3)
      INC($count,1)
      WAITMS(500)
      WHEELDOWN(3)
      MOVE(1200,600)
   END_IF
ELSE
   WAITMS(500)
END_IF

GOTO(start)