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).
@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.
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.
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.
możesz wyszukiwać łańcuch ' src=" ' i wyciągać url
ale pewnie w javie są dedykowane metody od tego
Ale i tak będzie mi potrzebne to w Javie, bo chcę sprawdzić tak dużo stron.
Nie chcę pisać bzdur, bo to nie są takie proste narzędzia, najlepiej zapoznaj się z jakimś artykułem.
@jestem_bordo: nie rozumiem. Jaka metoda "pobierzCałąStronęWWW"? Jest tylko url.getContent(), ale to to samo co podałem wyżej.
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
sparsuj html i następnie sam wybierz które linki masz pobierać (np. znacznik ![]()
"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ć
Szukam dalej.
@herbaciarz: znalazłem na