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

Wysłanie zapytania o kolejną stronę

Fiszki IT
Fiszki IT
+1 głos
38 wizyt
pytanie zadane 29 kwietnia w JavaScript przez kamilb Nowicjusz (130 p.)
Witam, chciałbym zapytać czy jest mozliwość stworzenia skryptu który sprawdzi i odpowie co jest na kolejnej stronie w którą zamierzam wejść.

Dla przykładu - jestem na stronie onet.pl, bez opuszczania tej strony chce wysłać zapytanie, czy po kliknięciu w ikonkę "onet poczta", na kolejnej stronie pojawi się np. słowo "zaloguj", jeśli tak to ma wejść na tą stronę, jeśli nie, ma pozostać na tej co jest.

Nie koniecznie musi filtrować słowo, moze to być ID lub klasa.

Myślałem nad JS oraz php.

JS implementuje do przeglądarki przez wtyczkę tempermonkey.

Pozdrawiam i z góry dziękuję za odpowiedź

1 odpowiedź

+2 głosów
odpowiedź 29 kwietnia przez ScriptyChris Mędrzec (164,120 p.)

Jeśli strona jest statyczna, to możesz wysłać do niej Ajax metodą GET. To zwróci jej kod HTML i po nim możesz szukać tekstowo lub zbudować z tego DOM i wyszukać czego potrzebujesz po konkretnych atrybutach (id, czy klasa).

W przypadku strony generowanej dynamicznie jest trochę gorzej, bo potrzebujesz w jakiś sposób zbudować content strony, co normalnie dzieje się za pośrednictwem frameworka pokroju Angular, React czy Vue. Tutaj mógłbyś posłużyć się np. Puppeteer'em, ale do tego potrzebujesz Node-a - mógłbyś wtedy z Tampermonkey poprosić backend o sprawdzenie danej strony, tam ogarnąć dynamiczne renderowanie i odesłać odpowiedź do Tampermonkey. Nie wiem, czy do Tampermonkey są gotowe pluginy, które to potrafią.

Ewentualnie, content strony pobrany Ajax-em można wrzucić w ukryty <iframe>, który powinien wyrenderować stronę i wtedy możesz za pomocą DOM API szukać w nim czego potrzebujesz.

komentarz 29 kwietnia przez kamilb Nowicjusz (130 p.)

Czy taki kod na pobranie strony jest poprawny ?
 

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery load() Demo</title>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){
        $("#box").load("https://www.onet.pl/");
    });
});
</script>
</head>
<body>
    <div id="box">
        <h2>Click button to load new content inside DIV box</h2>
    </div>
    <button type="button">Load Content</button>
</body>
</html>

 

komentarz 29 kwietnia przez ScriptyChris Mędrzec (164,120 p.)

Tak. Do tego trzeba jeszcze dodać sprawdzanie zawartości pobranej strony.

Chociaż łapałbym przycisk po id niż po samym tagu. A do pobrania nie potrzebujesz jQuery (chyba, że używasz go jeszcze do czegoś innego).

Podobne pytania

+1 głos
1 odpowiedź 65 wizyt
0 głosów
1 odpowiedź 123 wizyt
pytanie zadane 14 września 2019 w JavaScript przez Louel Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 78 wizyt
pytanie zadane 28 kwietnia 2019 w PHP przez manager96 Obywatel (1,990 p.)
Porady nie od parady
Forum posiada swój własny serwer Discord, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

84,721 zapytań

133,527 odpowiedzi

295,923 komentarzy

55,997 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...