Comment récupérer du HTML en Java
-
09-06-2019 - |
Question
Sans utiliser de bibliothèque externe, quel est le moyen le plus simple de récupérer le contenu HTML d'un site Web dans une chaîne ?
La solution
J'utilise actuellement ceci :
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);
Mais je ne sais pas s'il existe un meilleur moyen.
Autres conseils
Cela a bien fonctionné pour moi :
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);
}
Je ne sais pas si les autres solutions proposées sont plus efficaces ou non.
je viens de partir ce post dans votre autre fil, bien que ce que vous avez ci-dessus puisse également fonctionner.Je ne pense pas que l'un ou l'autre soit plus facile que l'autre.Les packages Apache sont accessibles en utilisant simplement import org.apache.commons.HttpClient
en haut de votre code.
Modifier:J'ai oublié le lien ;)
Bien que ce ne soit pas Vanilla-Java, je vais proposer une solution plus simple.Utilisez Groovy ;-)
String siteContent = new URL("http://www.google.com").text
Ce n'est pas une bibliothèque mais un outil nommé curl généralement installé sur la plupart des serveurs ou vous pouvez facilement l'installer dans Ubuntu en
sudo apt install curl
Ensuite, récupérez n'importe quelle page HTML et stockez-la dans votre fichier local comme un exemple
curl https://www.facebook.com/ > fb.html
Vous obtiendrez la page d’accueil html. Vous pouvez également l’exécuter dans votre navigateur.