• 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.

VPS Starter Arubacloud
0 głosów
6,645 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 Szeryf (75,340 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 Pasjonat (20,160 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 niezalogowany
przywrócone 6 marca 2021 przez Arkadiusz Waluk
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 Szeryf (75,340 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 niezalogowany
No i właśnie to napisałem?
komentarz 4 lipca 2016 przez CzikaCarry Szeryf (75,340 p.)
No, napisałeś to, co on napisał, trochę bez sensu xD
komentarz 5 lipca 2016 przez niezalogowany
"Jednak to nadal nie działałoby dokładnie w tle." - wyjaśniłem.
0 głosów
odpowiedź 4 lipca 2016 przez niezalogowany
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 niezalogowany
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 1,083 wizyt
pytanie zadane 4 lipca 2016 w JavaScript przez Fex Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 784 wizyt
pytanie zadane 5 kwietnia 2018 w C# przez lukaszvip166 Początkujący (300 p.)
0 głosów
2 odpowiedzi 870 wizyt

92,452 zapytań

141,262 odpowiedzi

319,077 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...