Wpis z mikrobloga

#programowanie #java #webdev

W jaki sposób pobrać całą stronę WWW?

Tak umiem:

HttpURLConnection conn = (HttpURLConnection) url.openConnection();
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);
}

Ale to pobiera mi tylko sam HTML. Chciałbym aby pobrało mi również ze wszystkimi plikami (grafika, Javascript) - tak jak pobiera to przeglądarka internetowa (np. zapisywanie stron w Chrome).

Po prostu chcę zmierzyć objętość stron.
  • 18
@mk321: tak dokładnie nie wiem, ale powinieneś szukać w Timeline, Profiles, Resources, Audits. Wystarczy że wpiszesz hasło w google i Ci znajdzie jakiś tutorial. Np. google pagespeed i inne takie.

Nie chcę pisać bzdur, bo to nie są takie proste narzędzia, najlepiej zapoznaj się z jakimś artykułem.
@Jojne_Zimmerman: w sumie niezły pomysł z tym "src=". Szukam własnie cały czas czegoś gotowego, ale nie mogę znaleźć - dlatego pytam.

@jestem_bordo: nie rozumiem. Jaka metoda "pobierzCałąStronęWWW"? Jest tylko url.getContent(), ale to to samo co podałem wyżej.
@mk321: nie ma takiej metody, to był taki żart

nie wiem na ile cie to zadowala, ale możesz użyć np. jakiegoś Jsoupa do wyciągnięcia linków i potem coś z nimi zrobić, ale nie wiem, nie robiłem niczego podobnego
@seoama: potrzebuję to zrobić w Javie a nie oddzielnym programem. Po za tym pobrać stronę można za pomocą zwykłej przeglądarki (albo wget). Chodzi mi tylko o jedną podstronę (z zawartością) a nie pobierać wszystkie linki ze strony (do czego przydaje się HTTrack).
@mk321: nie wiem w czym piszesz, ale pewnie najprostszą metodą jest użycie gotowej biblioteki, albo jakiegoś komponentu do wyświetlania stron internetowych. Taki komponent może mieć opcję zapisu wszystkiego co pobrał.
@kraluk: Widzę, że Jaunt jest głównie do wyszukiwania, ale coś jest: http://www.jaunt-api.com/jaunt-tutorial-advanced.htm
"Example 6: Using content handlers to retrieve JS/CSS/GIF/etc files."
Da się ustawić co chcę pobierać (CSS, JS itd). Tylko nie wiem jak ustawić wszystko (po prostu żeby pobrało jak przeglądarka).

@darck: no właśnie nie wiem jak. Jak wyświetlę np. w okienku w Swingu (podając ściągnięty HTML), to owszem, w okienku ściągnie się wszystko po włączeniu. Ale jak sprawdzić
@kraluk: saveCompleteWebPage z Jaunt dla dobrych strona działa. Jednak na większości stron a to jest jakiś błąd, a to nie ma cssów itd. Ta funkcja sobie z tym nie radzi - sypie błędami (wyświetla na konsolę! zamiast rzucić wyjątek, abym mógł go sobie obsłużyć np. pominąć plik który nie istnieje, a jest do niego link). Gdzie przeglądarka normalnie pobiera i omija to czego nie ma.

Szukam dalej.

@herbaciarz: znalazłem na