Frage

Was ist der einfachste Weg, den HTML-Inhalt einer Website ohne die Verwendung einer externen Bibliothek in einen String abzurufen?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top