Author Topic: Работа с вебстраницей  (Read 8005 times)

0 Members and 3 Guests are viewing this topic.

rulentus

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Работа с вебстраницей
« on: March 05, 2015, 07:48:05 PM »
Добрый день. Очень здоровская програмулина но у меня возник вопрос.
У меня есть необходимость кликать на определённую конпку на странице но таких кнопок может быть от 0 до 10 на странице + сама страница в сам экран не попадает полностью(это вообще важно?). нужно скролить её вниз для поиске кнопок а так же нажать на кнопку один раз если там нету лайка(то есть кнопка нажата не была) и дважды если там лайк стоит. Возможно ли это и мог бы кто то помочь в вопросе открытия "Help". Нажимаю на "Help" а там пусто....
Зарание благодарен за любую помощь!

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Работа с вебстраницей
« Reply #1 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
« Last Edit: March 05, 2015, 09:07:46 PM by Oraven »

rulentus

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: Работа с вебстраницей
« Reply #2 on: March 06, 2015, 09:05:27 AM »
kiril, Oraven Огромное Вам спасибо

rulentus

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: Работа с вебстраницей
« Reply #3 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: Вроде догадался. добавил в уравнение ещё одно условие с картинкой (стрелка на след страницу).
Но так как там нужен один клик то может будет уместно добавить в первое условие. только вот как.... Не могу синтаксис подобрать!
« Last Edit: March 10, 2015, 10:28:44 PM by rulentus »

rulentus

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: Работа с вебстраницей
« Reply #4 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. Блин. надо задонатить.
« Last Edit: March 11, 2015, 02:48:36 PM by rulentus »

ezfalcon

  • Освоившийся
  • **
  • Posts: 30
    • View Profile
Re: Работа с вебстраницей
« Reply #5 on: March 17, 2015, 02:45:18 PM »
Единственно е еще было бы круто привязать это к окну браузера мозила что бы я мог его свернуть и заниматся другими делами. hwnd то я знаю а вот куда его.....
P.S. Блин. надо задонатить.

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

Clickermann - универсальный инструмент. В ситуациях, когда нет тривиального решения задачи автоматизации он приходит на помощь. Ты же не пользуешься для готовки обеда дома универсальным складным ножом для путешествий.
« Last Edit: March 17, 2015, 07:09:15 PM by ezfalcon »

rulentus

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: Работа с вебстраницей
« Reply #6 on: March 18, 2015, 09:20:43 PM »
Ну для таких начинающих как я это довольно сложно на смом деле. Мало опыта в JS. так что поэтому и спрашивал.

Я дико извиняюсь но я наверно слепой или идиот. не могу найти как вызывать подпрограммы и как их правильно оформлять в коде.
Хотелось бы облагородить свои 500+ строк просто.
Да и в идее написать 5-6 таких скриптов и их рандомно вызывать.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Работа с вебстраницей
« Reply #7 on: March 19, 2015, 06:46:42 AM »
В справке, раздел Основные конструкции.

rulentus

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: Работа с вебстраницей
« Reply #8 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


что то не так ибо не пашет вызов ни с параметром ни без..... :'(
« Last Edit: March 19, 2015, 02:46:36 PM by rulentus »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Работа с вебстраницей
« Reply #9 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)  ?
« Last Edit: March 19, 2015, 03:05:37 PM by Vint »


rulentus

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: Работа с вебстраницей
« Reply #10 on: March 19, 2015, 03:41:31 PM »
Да там $rnd_click. тупанул. LCLICK без параметров просто для примера. там они есть
В целом этот блок кода должен выбрать поведение мышки(клики, перемешения и тд) из заданного числа вариантов.

Ну я в принципе понял что она возращает просто число. я хотел понять как мне вернуть рандомное поведение

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Работа с вебстраницей
« Reply #11 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
« Last Edit: March 19, 2015, 04:19:20 PM by Vint »


rulentus

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: Работа с вебстраницей
« Reply #12 on: March 19, 2015, 04:37:24 PM »
Да я и в кликах там рандомил. типа хитрый :P. Не знаю насколько оно помогает не спалить себя, но типа смысл имитации действия человека.
Спс за совет. вечером буду пробовать. убегать нужно(

rulentus

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: Работа с вебстраницей
« Reply #13 on: March 31, 2015, 02:57:04 PM »
И снова здравствуйте!

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

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

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Работа с вебстраницей
« Reply #14 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)
« Last Edit: March 31, 2015, 03:42:44 PM by Oraven »