So rufen Sie HTML in Java ab
-
09-06-2019 - |
Frage
Was ist der einfachste Weg, den HTML-Inhalt einer Website ohne die Verwendung einer externen Bibliothek in einen String abzurufen?
Lösung
Ich verwende derzeit Folgendes:
String content = null;
URLConnection connection = null;
try {
connection = new URL("http://www.google.com").openConnection();
Scanner scanner = new Scanner(connection.getInputStream());
scanner.useDelimiter("\\Z");
content = scanner.next();
scanner.close();
}catch ( Exception ex ) {
ex.printStackTrace();
}
System.out.println(content);
Aber ich bin mir nicht sicher, ob es einen besseren Weg gibt.
Andere Tipps
Das hat bei mir gut funktioniert:
URL url = new URL(theURL);
InputStream is = url.openStream();
int ptr = 0;
StringBuffer buffer = new StringBuffer();
while ((ptr = is.read()) != -1) {
buffer.append((char)ptr);
}
Ich bin mir nicht sicher, ob die anderen angebotenen Lösungen effizienter sind oder nicht.
Ich bin eben gegangen diesen Beitrag in deinem anderen Thread, obwohl das, was Sie oben haben, auch funktionieren könnte.Ich glaube nicht, dass das eine einfacher wäre als das andere.Auf die Apache-Pakete kann einfach mit zugegriffen werden import org.apache.commons.HttpClient
oben in Ihrem Code.
Bearbeiten:Link vergessen ;)
Obwohl es sich nicht um Vanilla-Java handelt, biete ich eine einfachere Lösung an.Benutze Groovy ;-)
String siteContent = new URL("http://www.google.com").text
Es handelt sich nicht um eine Bibliothek, sondern um ein Tool namens Curl, das im Allgemeinen auf den meisten Servern installiert ist. Sie können es aber auch problemlos in Ubuntu installieren
sudo apt install curl
Rufen Sie dann eine beliebige HTML-Seite ab und speichern Sie sie wie ein Beispiel in Ihrer lokalen Datei
curl https://www.facebook.com/ > fb.html
Sie erhalten die HTML-Startseite. Sie können sie auch in Ihrem Browser ausführen.