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 ?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top