Come recuperare HTML in Java
-
09-06-2019 - |
Domanda
Senza l'uso di librerie esterne, qual è il modo più semplice per recuperare il contenuto HTML di un sito Web in una stringa?
Soluzione
Attualmente sto usando questo:
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);
Ma non sono sicuro che esista un modo migliore.
Altri suggerimenti
Questo ha funzionato bene per me:
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);
}
Non sono sicuro se le altre soluzioni fornite siano più efficienti o meno.
sono appena andato via questo post nell'altra tua discussione, anche se quello che hai sopra potrebbe funzionare anche.Non penso che uno dei due sarebbe più facile dell'altro.È possibile accedere ai pacchetti Apache semplicemente utilizzando import org.apache.commons.HttpClient
nella parte superiore del codice.
Modificare:Ho dimenticato il collegamento ;)
Pur non essendo Java vanilla, offrirò una soluzione più semplice.Usa Groovy ;-)
String siteContent = new URL("http://www.google.com").text
Non è una libreria ma uno strumento chiamato curl generalmente installato nella maggior parte dei server oppure puoi installarlo facilmente in Ubuntu tramite
sudo apt install curl
Quindi recupera qualsiasi pagina html e memorizzala nel tuo file locale come un esempio
curl https://www.facebook.com/ > fb.html
Otterrai la home page html. Puoi eseguirla anche nel tuo browser.