Ohne die Verwendung einer externen Bibliothek, was ist der einfachste Weg, HTML-Inhalt einer Website in einen String zu holen?Wie hole ich HTML in Java
Antwort
ich zur Zeit das bin mit:
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();
}catch (Exception ex) {
ex.printStackTrace();
}
System.out.println(content);
aber nicht sicher, ob es einen besseren Weg.
Warum "\\ Z" ? Ist es nicht ein EOF nur unter Windows? Ich rate nur hier. – greenoldman
Hüten Sie sich vor der hohen Leistung, wenn Sie diese verwenden. – qwertzguy
Warum verwenden Sie "\\ Z"? Was tut es? Ich habe es ohne versucht, es hat nicht funktioniert. –
Ich habe gerade 10 verlassen, aber was Sie oben haben, könnte auch funktionieren. Ich denke nicht, dass einer einfacher wäre als der andere. Auf die Apache-Pakete können Sie zugreifen, indem Sie import org.apache.commons.HttpClient
ganz oben in Ihrem Code verwenden.
bearbeiten: Vergessen Sie den Link;)
Anscheinend müssen Sie auch die JAR-Datei installieren :) –
Das ist für mich gearbeitet hat gut:
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);
}
Nicht sicher an, ob die andere Lösung (en) zur Verfügung gestellt, nicht mehr effizient ist oder nicht.
Müssen Sie nicht die folgenden einschließen? import java.io. * import java.net. * –
Sicher, aber sie sind Core Java so sehr einfach. Wie beim eigentlichen Code werden die Importanweisungen zur besseren Übersicht weggelassen. –
nach 'while' sollten Sie auch den Inhalt des Puffers anzeigen! oder schreibe eine Methode, wo du es liest! – rupinderjeet
Während nicht Vanille-Java, werde ich eine einfachere Lösung anbieten. Verwenden Sie Groovy ;-)
String siteContent = new URL("http://www.google.com").text
möglich Duplikat http://stackoverflow.com/questions/238547/how-do-you-programmatically-download-a-webpage-in-java – jjnguy