• 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
328 wizyt
pytanie zadane 3 lipca 2016 w Java przez użytkownika Cujo Nowicjusz (120 punkty)
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 użytkownika CzikaCarry Nałogowiec (30,980 punkty)
Do tego typu działań to służy JavaScript.
komentarz 5 lipca 2016 przez użytkownika Cujo Nowicjusz (120 punkty)
Mógłbyś trochę rozwinąć wypowiedź? Dlaczego JavaScript nadaje się bardziej oraz dlaczego Java nie?
0 głosów
odpowiedź 4 lipca 2016 przez użytkownika Arkadiusz Sikorski Użytkownik (980 punkty)
Zaraz zaraz, mówisz o Javie czy o JavaScript?
komentarz 5 lipca 2016 przez użytkownika Cujo Nowicjusz (120 punkty)
Uczę się teraz i wykonuje wszystko w Javie dlatego też o nią pytałem.
0 głosów
odpowiedź 4 lipca 2016 przez użytkownika Magik Początkujący (330 punkty)
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 użytkownika CzikaCarry Nałogowiec (30,980 punkty)
Właśnie pisał, że ma to działać w tle a nie jak makra na myszkę czy klawiaturę. :)
komentarz 4 lipca 2016 przez użytkownika Magik Początkujący (330 punkty)
No i właśnie to napisałem?
komentarz 4 lipca 2016 przez użytkownika CzikaCarry Nałogowiec (30,980 punkty)
No, napisałeś to, co on napisał, trochę bez sensu xD
komentarz 5 lipca 2016 przez użytkownika Magik Początkujący (330 punkty)
"Jednak to nadal nie działałoby dokładnie w tle." - wyjaśniłem.
0 głosów
odpowiedź 4 lipca 2016 przez użytkownika shead VIP (117,270 punkty)
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 użytkownika Cujo Nowicjusz (120 punkty)
edycja 5 lipca 2016 przez użytkownika 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 użytkownika shead VIP (117,270 punkty)
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 144 wizyt
pytanie zadane 4 lipca 2016 w JavaScript, jQuery, AJAX przez użytkownika Fex Nowicjusz (140 punkty)
0 głosów
3 odpowiedzi 217 wizyt
pytanie zadane 10 kwietnia 2016 w C i C++ przez użytkownika ormu16 Mądrala (5,140 punkty)
0 głosów
1 odpowiedź 236 wizyt
pytanie zadane 3 października 2016 w Ogłoszenia, zlecenia przez użytkownika Michał Szczepański Nowicjusz (120 punkty)
...