• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Bot wykonujący schematyczne czynności na stronie internetowej w tle.

0 głosów
529 wizyt
pytanie zadane 3 lipca 2016 w Java przez Cujo Nowicjusz (120 p.)
Chcę wykonać w Javie większy projekt w celu nauki.

Działania które chcę aby program wykonywał można przedstawić na zasadzie działania programów tworzących makra rejestrujących ruchy myszki czy klawiatury.

Program ma działać w tle, na co proste makra nie pozwalając bo gdy działają to komputer jest nazwijmy to "zajęty" wykonywaniem tych kroków. Początkowo miałem pomysł aby ta strona internetowa wyświetlała się w okienku mojego programu i aby tam wykonywano te czynności. Jednak to nadal nie działałoby dokładnie w tle.
Zrozumiałem że trzeba zrobić coś na co nie potrafiłem znaleźć odpowiedzi. Powinienem jakby z buttonów na stronie powyciągać linki żeby program je po kolei klikał, albo rozsuwał menu i wybierał jakąś opcję. Nie ma pojęcia jak to zrobić? Jakich bibliotek użyć lub o czym poczytać.

Druga sprawa, chciałbym aby program "rozpoznawał" schematy na ekranie. Będzie wykonywał schematyczne klikanie dopóki w tym kawałku strony wyświetla się coś jeszcze. A może coś takiego robi się jakoś od wnętrza tej witryn? Powiedzmy dopóki w tym fragmencie kodu pojawiają się tabele... Stąd moje pytania. I również jaka biblioteka może mi się przydać do tego i o czym mógłby poczytać.

Proszę o wszelkie wskazówki :)

4 odpowiedzi

0 głosów
odpowiedź 4 lipca 2016 przez CzikaCarry Nałogowiec (42,780 p.)
Do tego typu działań to służy JavaScript.
komentarz 5 lipca 2016 przez Cujo Nowicjusz (120 p.)
Mógłbyś trochę rozwinąć wypowiedź? Dlaczego JavaScript nadaje się bardziej oraz dlaczego Java nie?
0 głosów
odpowiedź 4 lipca 2016 przez Arkadiusz Sikorski Bywalec (2,120 p.)
Zaraz zaraz, mówisz o Javie czy o JavaScript?
komentarz 5 lipca 2016 przez Cujo Nowicjusz (120 p.)
Uczę się teraz i wykonuje wszystko w Javie dlatego też o nią pytałem.
0 głosów
odpowiedź 4 lipca 2016 przez Magik Początkujący (370 p.)
Na javie nie bardzo się znam ale wpisz w google "java web requests" albo "java send post request" i coś powinno być.

Co do Twojego pomysłu z okienkiem przeglądarki to moim zdaniem dokładnie to o co Ci chodzi. Implementujesz jakiś silnik przeglądarki i Twój skrypt wykonuje zadanie w przeglądarce, która jest w skrypcie, więc to działa w tle, ponieważ program wysyła polecenia bezpośrednio do przeglądarki bez użycia klawiatury czy myszy.
komentarz 4 lipca 2016 przez CzikaCarry Nałogowiec (42,780 p.)
Właśnie pisał, że ma to działać w tle a nie jak makra na myszkę czy klawiaturę. :)
komentarz 4 lipca 2016 przez Magik Początkujący (370 p.)
No i właśnie to napisałem?
komentarz 4 lipca 2016 przez CzikaCarry Nałogowiec (42,780 p.)
No, napisałeś to, co on napisał, trochę bez sensu xD
komentarz 5 lipca 2016 przez Magik Początkujący (370 p.)
"Jednak to nadal nie działałoby dokładnie w tle." - wyjaśniłem.
0 głosów
odpowiedź 4 lipca 2016 przez shead VIP (125,440 p.)
Jeżeli chodzi o klikanie przycisków itd to sprawa jest dość trywialna bo to wymaga po prostu wysłania odpowiednich żądań, czyli pobierasz stronę, szukasz interesujących cię obiektów (po id, klasie, typie, czy czym tam chcesz) i wywołujesz odpowiednią funkcję, tyle ( https://stackoverflow.com/questions/11899793/android-http-post-request-on-clicking-button )

Drugi problem dotyczący zmiany strony jest ciekawszy, a samo rozwiązanie jest zależne od tego jakie obiekty będą się zmieniać: jeżeli zmiana ma polegać na dodaniu nowych elementów np. tabel to wystarczy pobrać początkowy kod witryny, zapisać go i sprawdzać co jakiś czas czy kod nie zmienił się. Jeżeli zmiana ma polegać na tym że zmieni się jakiś piksel np na canvasie to poprzednia metoda nie zadziała
komentarz 5 lipca 2016 przez Cujo Nowicjusz (120 p.)
edycja 5 lipca 2016 przez Cujo
Zakładając że nie będę badał zmian pikseli to wyświetlanie obrazu strony nie będzie konieczne?
A wszystkie te zapytania/żądania gdybym badał jak zmienia się interesujący mnie fragment kodu strony wykonywałby się po prostu w tle bez wyświetlania niczego?
(Zapytania do serwera, odpowiedzi od serwera, żądania to dla mnie zupełnie nowe rzeczy od technicznej strony dlatego też zastanawiało mnie jakie rozwiązanie wybrać).
komentarz 5 lipca 2016 przez shead VIP (125,440 p.)
Nawet w przypadku badania zmian pikseli to nie musisz ich wyświetlać: będziesz musiał je jedynie pobrać.

Ale tak: nie musisz wyświetlać strony bo po co? Strona to tekst, interakcje w sposób wizualny to jedynie łatwiejszy sposób (bardziej przyjazny przeciętnemu Kowalskiemu) w użytkowaniu strony

Podobne pytania

0 głosów
3 odpowiedzi 169 wizyt
0 głosów
3 odpowiedzi 279 wizyt
pytanie zadane 10 kwietnia 2016 w C i C++ przez ormu16 Mądrala (5,140 p.)
...