jsoup - Guide rapide
jsoup est une bibliothèque Java pour travailler avec du contenu HTML. Il fournit une API très pratique pour extraire et manipuler des données, en utilisant le meilleur des méthodes DOM, CSS et jquery. Il implémente la spécification WHATWG HTML5 et analyse le HTML dans le même DOM que les navigateurs modernes.
jsoup libary implémente la spécification WHATWG HTML5 et analyse un contenu HTML dans le même DOM que celui des navigateurs modernes.
La bibliothèque jsonp fournit les fonctionnalités suivantes.
Multiple Read Support - Il lit et analyse le HTML en utilisant une URL, un fichier ou une chaîne.
CSS Selectors - Il peut trouver et extraire des données, en utilisant la traversée DOM ou des sélecteurs CSS.
DOM Manipulation - Il peut manipuler les éléments HTML, les attributs et le texte.
Prevent XSS attacks - Il peut nettoyer le contenu soumis par l'utilisateur contre une liste blanche sûre donnée, pour empêcher les attaques XSS.
Tidy - Il produit du HTML soigné.
Handles invalid data - jsoup peut gérer les balises non fermées, les balises implicites et peut créer de manière fiable la structure du document.
Configuration de l'environnement local
JUnit est un framework pour Java, donc la toute première exigence est d'avoir JDK installé sur votre machine.
Exigence du système
JDK | 1.5 ou supérieur. |
---|---|
Mémoire | Aucune exigence minimale. |
Espace disque | Aucune exigence minimale. |
Système opérateur | Aucune exigence minimale. |
Étape 1: Vérifiez l'installation de Java sur votre machine
Tout d'abord, ouvrez la console et exécutez une commande java basée sur le système d'exploitation sur lequel vous travaillez.
OS | Tâche | Commander |
---|---|---|
les fenêtres | Ouvrez la console de commande | c: \> java -version |
Linux | Ouvrir le terminal de commande | $ java -version |
Mac | Terminal ouvert | machine: <joseph $ java -version |
Vérifions la sortie pour tous les systèmes d'exploitation -
OS | Production |
---|---|
les fenêtres | version java "1.6.0_21" Environnement d'exécution Java (TM) SE (build 1.6.0_21-b07) VM client Java HotSpot (TM) (build 17.0-b17, mode mixte, partage) |
Linux | version java "1.6.0_21" Environnement d'exécution Java (TM) SE (build 1.6.0_21-b07) VM client Java HotSpot (TM) (build 17.0-b17, mode mixte, partage) |
Mac | version java "1.6.0_21" Environnement d'exécution Java (TM) SE (build 1.6.0_21-b07) VM serveur 64 bits Java HotSpot (TM) (build 17.0-b17, mode mixte, partage) |
Si Java n'est pas installé sur votre système, téléchargez le kit de développement logiciel Java (SDK) à partir du lien suivant https://www.oracle.com. Nous supposons que Java 1.6.0_21 est la version installée pour ce didacticiel.
Étape 2: définir l'environnement JAVA
Met le JAVA_HOMEvariable d'environnement pour pointer vers l'emplacement du répertoire de base où Java est installé sur votre machine. Par exemple.
OS | Production |
---|---|
les fenêtres | Définissez la variable d'environnement JAVA_HOME sur C: \ Program Files \ Java \ jdk1.6.0_21 |
Linux | export JAVA_HOME = / usr / local / java-current |
Mac | export JAVA_HOME = / Bibliothèque / Java / Accueil |
Ajoutez l'emplacement du compilateur Java au chemin système.
OS | Production |
---|---|
les fenêtres | Ajouter la chaîne C:\Program Files\Java\jdk1.6.0_21\bin à la fin de la variable système, Path. |
Linux | export PATH = $ PATH: $ JAVA_HOME / bin / |
Mac | non requis |
Vérifiez l'installation de Java à l'aide de la commande java -version comme expliqué ci-dessus.
Étape 3: Téléchargez l'archive jsoup
Téléchargez la dernière version du fichier jar jsoup à partir du référentiel Maven . Au moment de la rédaction de ce tutoriel, nous avons téléchargé jsoup-1.8.3.jar et l'avons copié dans le dossier C: \> jsoup.
OS | Nom de l'archive |
---|---|
les fenêtres | jsoup-1.8.3.jar |
Linux | jsoup-1.8.3.jar |
Mac | jsoup-1.8.3.jar |
Étape 4: définir l'environnement jsoup
Met le JSOUP_HOMEvariable d'environnement pour pointer vers l'emplacement du répertoire de base où jsoup jar est stocké sur votre machine. Supposons que nous ayons stocké jsoup-1.8.3.jar dans le dossier JSOUP.
Sr. Non | OS et description |
---|---|
1 | Windows Définissez la variable d'environnement JSOUP_HOME sur C: \ JSOUP |
2 | Linux export JSOUP_HOME = / usr / local / JSOUP |
3 | Mac export JSOUP_HOME = / Bibliothèque / JSOUP |
Étape 5: Définissez la variable CLASSPATH
Met le CLASSPATH variable d'environnement pour pointer vers l'emplacement du fichier JSOUP.
Sr. Non | OS et description |
---|---|
1 | Windows Définissez la variable d'environnement CLASSPATH sur% CLASSPATH%;% JSOUP_HOME% \ jsoup-1.8.3.jar;.; |
2 | Linux export CLASSPATH = $ CLASSPATH: $ JSOUP_HOME / jsoup-1.8.3.jar :. |
3 | Mac export CLASSPATH = $ CLASSPATH: $ JSOUP_HOME / jsoup-1.8.3.jar :. |
L'exemple suivant présente l'analyse d'une chaîne HTML dans un objet Document.
Syntaxe
Document document = Jsoup.parse(html);
Où
document - l'objet document représente le DOM HTML.
Jsoup - classe principale pour analyser la chaîne HTML donnée.
html - Chaîne HTML.
La description
La méthode parse (String html) analyse le code HTML d'entrée dans un nouveau document. Cet objet de document peut être utilisé pour parcourir et obtenir des détails sur le domaine html.
Exemple
Créez le programme java suivant en utilisant n'importe quel éditeur de votre choix, disons C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body><p>Sample Content</p></body></html>";
Document document = Jsoup.parse(html);
System.out.println(document.title());
Elements paragraphs = document.getElementsByTag("p");
for (Element paragraph : paragraphs) {
System.out.println(paragraph.text());
}
}
}
Vérifier le résultat
Compilez la classe en utilisant javac compilateur comme suit:
C:\jsoup>javac JsoupTester.java
Exécutez maintenant le JsoupTester pour voir le résultat.
C:\jsoup>java JsoupTester
Voyez le résultat.
Sample Title
Sample Content
L'exemple suivant présentera l'analyse d'une chaîne de fragement HTML dans un objet Element en tant que corps html.
Syntaxe
Document document = Jsoup.parseBodyFragment(html);
Element body = document.body();
Où
document - l'objet document représente le DOM HTML.
Jsoup - classe principale pour analyser la chaîne HTML donnée.
html - Chaîne de fragment HTML.
body - représente les enfants élément de l'élément body du document et équivaut à document.getElementsByTag ("body").
La description
La méthode parseBodyFragment (String html) analyse le code HTML d'entrée dans un nouveau document. Cet objet de document peut être utilisé pour parcourir et obtenir des détails sur le fragment de corps html.
Exemple
Créez le programme java suivant en utilisant n'importe quel éditeur de votre choix, disons C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTester {
public static void main(String[] args) {
String html = "<div><p>Sample Content</p>";
Document document = Jsoup.parseBodyFragment(html);
Element body = document.body();
Elements paragraphs = body.getElementsByTag("p");
for (Element paragraph : paragraphs) {
System.out.println(paragraph.text());
}
}
}
Vérifier le résultat
Compilez la classe en utilisant javac compilateur comme suit:
C:\jsoup>javac JsoupTester.java
Exécutez maintenant le JsoupTester pour voir le résultat.
C:\jsoup>java JsoupTester
Voyez le résultat.
Sample Content
L'exemple suivant présentera la récupération d'un code HTML sur le Web à l'aide d'une URL, puis trouvera ses données.
Syntaxe
String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();
Où
document - l'objet document représente le DOM HTML.
Jsoup - classe principale pour connecter l'url et obtenir la chaîne HTML.
url - URL de la page html à charger.
La description
La méthode connect (url) établit une connexion à l'url et la méthode get () renvoie le code HTML de l'url demandée.
Exemple
Créez le programme java suivant en utilisant n'importe quel éditeur de votre choix, disons C: /> jsoup.
JsoupTester.java
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JsoupTester {
public static void main(String[] args) throws IOException {
String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();
System.out.println(document.title());
}
}
Vérifier le résultat
Compilez la classe en utilisant javac compilateur comme suit:
C:\jsoup>javac JsoupTester.java
Exécutez maintenant le JsoupTester pour voir le résultat.
C:\jsoup>java JsoupTester
Voyez le résultat.
Google
L'exemple suivant présentera la récupération d'un HTML à partir du disque à l'aide d'un fichier, puis trouvera ses données.
Syntaxe
String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();
Où
document - l'objet document représente le DOM HTML.
Jsoup - classe principale pour connecter l'url et obtenir la chaîne HTML.
url - URL de la page html à charger.
La description
La méthode connect (url) établit une connexion à l'url et la méthode get () renvoie le code HTML de l'url demandée.
Exemple
Créez le programme java suivant en utilisant n'importe quel éditeur de votre choix, disons C: /> jsoup.
JsoupTester.java
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JsoupTester {
public static void main(String[] args) throws IOException, URISyntaxException {
URL path = ClassLoader.getSystemResource("test.htm");
File input = new File(path.toURI());
Document document = Jsoup.parse(input, "UTF-8");
System.out.println(document.title());
}
}
test.htm
Créez le fichier test.htm suivant dans le dossier C: \ jsoup.
<html>
<head>
<title>Sample Title</title>
</head>
<body>
<p>Sample Content</p>
</body>
</html>
Vérifier le résultat
Compilez la classe en utilisant javac compilateur comme suit:
C:\jsoup>javac JsoupTester.java
Exécutez maintenant le JsoupTester pour voir le résultat.
C:\jsoup>java JsoupTester
Voyez le résultat.
Sample Title
L'exemple suivant présentera l'utilisation de méthodes de type DOM après l'analyse d'une chaîne HTML dans un objet Document.
Syntaxe
Document document = Jsoup.parse(html);
Element sampleDiv = document.getElementById("sampleDiv");
Elements links = sampleDiv.getElementsByTag("a");
Où
document - l'objet document représente le DOM HTML.
Jsoup - classe principale pour analyser la chaîne HTML donnée.
html - Chaîne HTML.
sampleDiv - L'objet élément représente l'élément de nœud html identifié par l'identifiant "sampleDiv".
links - L'objet Elements représente les éléments de nœud multiples identifiés par la balise "a".
La description
La méthode parse (String html) analyse le code HTML d'entrée dans un nouveau document. Cet objet de document peut être utilisé pour parcourir et obtenir des détails sur le domaine html.
Exemple
Créez le programme java suivant en utilisant n'importe quel éditeur de votre choix, disons C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a href='www.google.com'>Google</a></div>"
+"</body></html>";
Document document = Jsoup.parse(html);
System.out.println(document.title());
Elements paragraphs = document.getElementsByTag("p");
for (Element paragraph : paragraphs) {
System.out.println(paragraph.text());
}
Element sampleDiv = document.getElementById("sampleDiv");
System.out.println("Data: " + sampleDiv.text());
Elements links = sampleDiv.getElementsByTag("a");
for (Element link : links) {
System.out.println("Href: " + link.attr("href"));
System.out.println("Text: " + link.text());
}
}
}
Vérifier le résultat
Compilez la classe en utilisant javac compilateur comme suit:
C:\jsoup>javac JsoupTester.java
Exécutez maintenant le JsoupTester pour voir le résultat.
C:\jsoup>java JsoupTester
Voyez le résultat.
Sample Title
Sample Content
Data: Google
Href: www.google.com
Text: Google
L'exemple suivant présente l'utilisation des méthodes de sélection après avoir analysé une chaîne HTML dans un objet Document. jsoup prend en charge les sélecteurs similaires aux sélecteurs CSS.
Syntaxe
Document document = Jsoup.parse(html);
Element sampleDiv = document.getElementById("sampleDiv");
Elements links = sampleDiv.getElementsByTag("a");
Où
document - l'objet document représente le DOM HTML.
Jsoup - classe principale pour analyser la chaîne HTML donnée.
html - Chaîne HTML.
sampleDiv - L'objet élément représente l'élément de nœud html identifié par l'identifiant "sampleDiv".
links - L'objet Elements représente les éléments de nœud multiples identifiés par la balise "a".
La description
La méthode document.select (expression) analyse l'expression de sélecteur CSS donnée pour sélectionner un élément dom html.
Exemple
Créez le programme java suivant en utilisant n'importe quel éditeur de votre choix, disons C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
+ "<h3><a>Sample</a><h3>"
+"</div>"
+ "<div id='imageDiv' class='header'><img name='google' src='google.png' />"
+ "<img name='yahoo' src='yahoo.jpg' />"
+"</div>"
+"</body></html>";
Document document = Jsoup.parse(html);
//a with href
Elements links = document.select("a[href]");
for (Element link : links) {
System.out.println("Href: " + link.attr("href"));
System.out.println("Text: " + link.text());
}
// img with src ending .png
Elements pngs = document.select("img[src$=.png]");
for (Element png : pngs) {
System.out.println("Name: " + png.attr("name"));
}
// div with class=header
Element headerDiv = document.select("div.header").first();
System.out.println("Id: " + headerDiv.id());
// direct a after h3
Elements sampleLinks = document.select("h3 > a");
for (Element link : sampleLinks) {
System.out.println("Text: " + link.text());
}
}
}
Vérifier le résultat
Compilez la classe en utilisant javac compilateur comme suit:
C:\jsoup>javac JsoupTester.java
Exécutez maintenant le JsoupTester pour voir le résultat.
C:\jsoup>java JsoupTester
Voyez le résultat.
Href: www.google.com
Text: Google
Name: google
Id: imageDiv
Text: Sample
L'exemple suivant montrera l'utilisation de la méthode pour obtenir l'attribut d'un élément dom après avoir analysé une chaîne HTML dans un objet Document.
Syntaxe
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
System.out.println("Href: " + link.attr("href"));
Où
document - l'objet document représente le DOM HTML.
Jsoup - classe principale pour analyser la chaîne HTML donnée.
html - Chaîne HTML.
link - L'objet Element représente l'élément de nœud html représentant la balise d'ancrage.
link.attr() - La méthode attr (attribut) récupère l'attribut d'élément.
La description
L'objet Element représente un élément dom et fournit diverses méthodes pour obtenir l'attribut d'un élément dom.
Exemple
Créez le programme java suivant en utilisant n'importe quel éditeur de votre choix, disons C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
+ "<h3><a>Sample</a><h3>"
+"</div>"
+"</body></html>";
Document document = Jsoup.parse(html);
//a with href
Element link = document.select("a").first();
System.out.println("Href: " + link.attr("href"));
}
}
Vérifier le résultat
Compilez la classe en utilisant javac compilateur comme suit:
C:\jsoup>javac JsoupTester.java
Exécutez maintenant le JsoupTester pour voir le résultat.
C:\jsoup>java JsoupTester
Voyez le résultat.
Href: www.google.com
L'exemple suivant présentera l'utilisation de méthodes pour obtenir du texte après l'analyse d'une chaîne HTML dans un objet Document.
Syntaxe
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
System.out.println("Text: " + link.text());
Où
document - l'objet document représente le DOM HTML.
Jsoup - classe principale pour analyser la chaîne HTML donnée.
html - Chaîne HTML.
link - L'objet Element représente l'élément de nœud html représentant la balise d'ancrage.
link.text() - La méthode text () récupère le texte de l'élément.
La description
L'objet Element représente un élément dom et fournit diverses méthodes pour obtenir le texte d'un élément dom.
Exemple
Créez le programme java suivant en utilisant n'importe quel éditeur de votre choix, disons C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
+ "<h3><a>Sample</a><h3>"
+"</div>"
+"</body></html>";
Document document = Jsoup.parse(html);
//a with href
Element link = document.select("a").first();
System.out.println("Text: " + link.text());
}
}
Vérifier le résultat
Compilez la classe en utilisant javac compilateur comme suit:
C:\jsoup>javac JsoupTester.java
Exécutez maintenant le JsoupTester pour voir le résultat.
C:\jsoup>java JsoupTester
Voyez le résultat.
Text: Google
L'exemple suivant montrera l'utilisation de méthodes pour obtenir du HTML interne et du HTML externe après avoir analysé une chaîne HTML dans un objet Document.
Syntaxe
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
System.out.println("Outer HTML: " + link.outerHtml());
System.out.println("Inner HTML: " + link.html());
Où
document - l'objet document représente le DOM HTML.
Jsoup - classe principale pour analyser la chaîne HTML donnée.
html - Chaîne HTML.
link - L'objet Element représente l'élément de nœud html représentant la balise d'ancrage.
link.outerHtml() - La méthode externalHtml () récupère l'élément html complet.
link.html() - La méthode html () récupère l'élément html interne.
La description
L'objet Element représente un élément dom et fournit diverses méthodes pour obtenir le code HTML d'un élément dom.
Exemple
Créez le programme java suivant en utilisant n'importe quel éditeur de votre choix, disons C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
+ "<h3><a>Sample</a><h3>"
+"</div>"
+"</body></html>";
Document document = Jsoup.parse(html);
//a with href
Element link = document.select("a").first();
System.out.println("Outer HTML: " + link.outerHtml());
System.out.println("Inner HTML: " + link.html());
}
}
Vérifier le résultat
Compilez la classe en utilisant javac compilateur comme suit:
C:\jsoup>javac JsoupTester.java
Exécutez maintenant le JsoupTester pour voir le résultat.
C:\jsoup>java JsoupTester
Voyez le résultat.
Outer HTML: <a href="www.google.com">Google</a>
Inner HTML: Google
L'exemple suivant présentera des méthodes qui peuvent fournir des URL relatives ainsi que des URL absolues présentes dans la page html.
Syntaxe
String url = "http://www.tutorialspoint.com/";
Document document = Jsoup.connect(url).get();
Element link = document.select("a").first();
System.out.println("Relative Link: " + link.attr("href"));
System.out.println("Absolute Link: " + link.attr("abs:href"));
System.out.println("Absolute Link: " + link.absUrl("href"));
Où
document - l'objet document représente le DOM HTML.
Jsoup - classe principale pour se connecter à une url et obtenir le contenu html.
link - L'objet Element représente l'élément de nœud html représentant la balise d'ancrage.
link.attr("href")- fournit la valeur de href présente dans la balise d'ancrage. Cela peut être relatif ou absolu.
link.attr("abs:href") - fournit l'URL absolue après résolution par rapport à l'URI de base du document.
link.absUrl("href") - fournit l'URL absolue après résolution par rapport à l'URI de base du document.
La description
L'objet élément représente un élément de domaine et fournit des méthodes pour obtenir les URL relatives ainsi que les URL absolues présentes dans la page html.
Exemple
Créez le programme java suivant en utilisant n'importe quel éditeur de votre choix, disons C: /> jsoup.
JsoupTester.java
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) throws IOException {
String url = "http://www.tutorialspoint.com/";
Document document = Jsoup.connect(url).get();
Element link = document.select("a").first();
System.out.println("Relative Link: " + link.attr("href"));
System.out.println("Absolute Link: " + link.attr("abs:href"));
System.out.println("Absolute Link: " + link.absUrl("href"));
}
}
Vérifier le résultat
Compilez la classe en utilisant javac compilateur comme suit:
C:\jsoup>javac JsoupTester.java
Exécutez maintenant le JsoupTester pour voir le résultat.
C:\jsoup>java JsoupTester
Voyez le résultat.
Relative Link: index.htm
Absolute Link: https://www.tutorialspoint.com/index.htm
Absolute Link: https://www.tutorialspoint.com/index.htm
L'exemple suivant présentera l'utilisation de la méthode pour définir les attributs d'un élément dom, les mises à jour en masse et l'ajout / suppression de méthodes de classe après l'analyse d'une chaîne HTML dans un objet Document.
Syntaxe
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
link.attr("href","www.yahoo.com");
link.addClass("header");
link.removeClass("header");
Où
document - l'objet document représente le DOM HTML.
Jsoup - classe principale pour analyser la chaîne HTML donnée.
html - Chaîne HTML.
link - L'objet Element représente l'élément de nœud html représentant la balise d'ancrage.
link.attr() - La méthode attr (attribut, valeur) définit l'attribut d'élément sur la valeur correspondante.
link.addClass() - La méthode addClass (class) ajoute la classe sous l'attribut class.
link.removeClass() - La méthode removeClass (class) supprime la classe sous l'attribut class.
La description
L'objet Element représente un élément dom et fournit diverses méthodes pour obtenir l'attribut d'un élément dom.
Exemple
Créez le programme java suivant en utilisant n'importe quel éditeur de votre choix, disons C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<p>Sample Content</p>"
+ "<div id='sampleDiv'><a id='googleA' href='www.google.com'>Google</a></div>"
+ "<div class='comments'><a href='www.sample1.com'>Sample1</a>"
+ "<a href='www.sample2.com'>Sample2</a>"
+ "<a href='www.sample3.com'>Sample3</a><div>"
+"</div>"
+ "<div id='imageDiv' class='header'><img name='google' src='google.png' />"
+ "<img name='yahoo' src='yahoo.jpg' />"
+"</div>"
+"</body></html>";
Document document = Jsoup.parse(html);
//Example: set attribute
Element link = document.getElementById("googleA");
System.out.println("Outer HTML Before Modification :" + link.outerHtml());
link.attr("href","www.yahoo.com");
System.out.println("Outer HTML After Modification :" + link.outerHtml());
System.out.println("---");
//Example: add class
Element div = document.getElementById("sampleDiv");
System.out.println("Outer HTML Before Modification :" + div.outerHtml());
link.addClass("header");
System.out.println("Outer HTML After Modification :" + div.outerHtml());
System.out.println("---");
//Example: remove class
Element div1 = document.getElementById("imageDiv");
System.out.println("Outer HTML Before Modification :" + div1.outerHtml());
div1.removeClass("header");
System.out.println("Outer HTML After Modification :" + div1.outerHtml());
System.out.println("---");
//Example: bulk update
Elements links = document.select("div.comments a");
System.out.println("Outer HTML Before Modification :" + links.outerHtml());
links.attr("rel", "nofollow");
System.out.println("Outer HTML Before Modification :" + links.outerHtml());
}
}
Vérifier le résultat
Compilez la classe en utilisant javac compilateur comme suit:
C:\jsoup>javac JsoupTester.java
Exécutez maintenant le JsoupTester pour voir le résultat.
C:\jsoup>java JsoupTester
Voyez le résultat.
Outer HTML Before Modification :<a id="googleA" href="www.google.com">Google</a>
Outer HTML After Modification :<a id="googleA" href="www.yahoo.com">Google</a>
---
Outer HTML Before Modification :<div id="sampleDiv">
<a id="googleA" href="www.yahoo.com">Google</a>
</div>
Outer HTML After Modification :<div id="sampleDiv">
<a id="googleA" href="www.yahoo.com" class="header">Google</a>
</div>
---
Outer HTML Before Modification :<div id="imageDiv" class="header">
<img name="google" src="google.png">
<img name="yahoo" src="yahoo.jpg">
</div>
Outer HTML After Modification :<div id="imageDiv" class="">
<img name="google" src="google.png">
<img name="yahoo" src="yahoo.jpg">
</div>
---
Outer HTML Before Modification :<a href="www.sample1.com">Sample1</a>
<a href="www.sample2.com">Sample2</a>
<a href="www.sample3.com">Sample3</a>
Outer HTML Before Modification :<a href="www.sample1.com" rel="nofollow">Sample1</a>
<a href="www.sample2.com" rel="nofollow">Sample2</a>
<a href="www.sample3.com" rel="nofollow">Sample3</a>
L'exemple suivant montrera l'utilisation de la méthode pour définir, ajouter ou ajouter du code HTML à un élément dom après avoir analysé une chaîne HTML dans un objet Document.
Syntaxe
Document document = Jsoup.parse(html);
Element div = document.getElementById("sampleDiv");
div.html("<p>This is a sample content.</p>");
div.prepend("<p>Initial Text</p>");
div.append("<p>End Text</p>");
Où
document - l'objet document représente le DOM HTML.
Jsoup - classe principale pour analyser la chaîne HTML donnée.
html - Chaîne HTML.
div - L'objet Element représente l'élément de nœud html représentant la balise d'ancrage.
div.html() - La méthode html (content) remplace le html externe de l'élément par la valeur correspondante.
div.prepend() - La méthode prepend (content) ajoute le contenu avant le html externe.
div.append() - La méthode append (content) ajoute le contenu après le html externe.
La description
L'objet Element représente un élément dom et fournit diverses méthodes pour définir, ajouter ou ajouter du code HTML à un élément dom.
Exemple
Créez le programme java suivant en utilisant n'importe quel éditeur de votre choix, disons C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<div id='sampleDiv'><a id='googleA' href='www.google.com'>Google</a></div>"
+"</body></html>";
Document document = Jsoup.parse(html);
Element div = document.getElementById("sampleDiv");
System.out.println("Outer HTML Before Modification :\n" + div.outerHtml());
div.html("<p>This is a sample content.</p>");
System.out.println("Outer HTML After Modification :\n" + div.outerHtml());
div.prepend("<p>Initial Text</p>");
System.out.println("After Prepend :\n" + div.outerHtml());
div.append("<p>End Text</p>");
System.out.println("After Append :\n" + div.outerHtml());
}
}
Vérifier le résultat
Compilez la classe en utilisant javac compilateur comme suit:
C:\jsoup>javac JsoupTester.java
Exécutez maintenant le JsoupTester pour voir le résultat.
C:\jsoup>java JsoupTester
Voyez le résultat.
Outer HTML Before Modification :
<div id="sampleDiv">
<a id="googleA" href="www.google.com">Google</a>
</div>
Outer HTML After Modification :
<div id="sampleDiv">
<p>This is a sample content.</p>
</div>
After Prepend :
<div id="sampleDiv">
<p>Initial Text</p>
<p>This is a sample content.</p>
</div>
After Append :
<div id="sampleDiv">
<p>Initial Text</p>
<p>This is a sample content.</p>
<p>End Text</p>
</div>
Outer HTML Before Modification :
<span>Sample Content</span>
Outer HTML After Modification :
<span>Sample Content</span>
L'exemple suivant montre l'utilisation de la méthode pour définir, ajouter ou ajouter du texte à un élément dom après avoir analysé une chaîne HTML dans un objet Document.
Syntaxe
Document document = Jsoup.parse(html);
Element div = document.getElementById("sampleDiv");
div.text("This is a sample content.");
div.prepend("Initial Text.");
div.append("End Text.");
Où
document - l'objet document représente le DOM HTML.
Jsoup - classe principale pour analyser la chaîne HTML donnée.
html - Chaîne HTML.
div - L'objet Element représente l'élément de nœud html représentant la balise d'ancrage.
div.text() - La méthode text (content) remplace le contenu de l'élément par la valeur correspondante.
div.prepend() - La méthode prepend (content) ajoute le contenu avant le html externe.
div.append() - La méthode append (content) ajoute le contenu après le html externe.
La description
L'objet Element représente un élément dom et fournit diverses méthodes pour définir, ajouter ou ajouter du code HTML à un élément dom.
Exemple
Créez le programme java suivant en utilisant n'importe quel éditeur de votre choix, disons C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class JsoupTester {
public static void main(String[] args) {
String html = "<html><head><title>Sample Title</title></head>"
+ "<body>"
+ "<div id='sampleDiv'><a id='googleA' href='www.google.com'>Google</a></div>"
+"</body></html>";
Document document = Jsoup.parse(html);
Element div = document.getElementById("sampleDiv");
System.out.println("Outer HTML Before Modification :\n" + div.outerHtml());
div.text(This is a sample content.");
System.out.println("Outer HTML After Modification :\n" + div.outerHtml());
div.prepend("Initial Text.");
System.out.println("After Prepend :\n" + div.outerHtml());
div.append("End Text.");
System.out.println("After Append :\n" + div.outerHtml());
}
}
Vérifier le résultat
Compilez la classe en utilisant javac compilateur comme suit:
C:\jsoup>javac JsoupTester.java
Exécutez maintenant le JsoupTester pour voir le résultat.
C:\jsoup>java JsoupTester
Voyez le résultat.
Outer HTML Before Modification :
<div id="sampleDiv">
<a id="googleA" href="www.google.com">Google</a>
</div>
Outer HTML After Modification :
<div id="sampleDiv">
This is a sample content.
</div>
After Prepend :
<div id="sampleDiv">
Initial Text.This is a sample content.
</div>
After Append :
<div id="sampleDiv">
Initial Text.This is a sample content.End Text.
</div>
L'exemple suivant présentera la prévention des attaques XSS ou des attaques de script intersite.
Syntaxe
String safeHtml = Jsoup.clean(html, Whitelist.basic());
Où
Jsoup - classe principale pour analyser la chaîne HTML donnée.
html - Chaîne HTML initiale.
safeHtml - HTML nettoyé.
Whitelist - Objet pour fournir des configurations par défaut pour protéger le HTML.
clean() - nettoie le html en utilisant Whitelist.
La description
L'objet Jsoup nettoie un html à l'aide de configurations de liste blanche.
Exemple
Créez le programme java suivant en utilisant n'importe quel éditeur de votre choix, disons C: /> jsoup.
JsoupTester.java
import org.jsoup.Jsoup;
import org.jsoup.safety.Whitelist;
public class JsoupTester {
public static void main(String[] args) {
String html = "<p><a href='http://example.com/'"
+" onclick='checkData()'>Link</a></p>";
System.out.println("Initial HTML: " + html);
String safeHtml = Jsoup.clean(html, Whitelist.basic());
System.out.println("Cleaned HTML: " +safeHtml);
}
}
Vérifier le résultat
Compilez la classe en utilisant javac compilateur comme suit:
C:\jsoup>javac JsoupTester.java
Exécutez maintenant le JsoupTester pour voir le résultat.
C:\jsoup>java JsoupTester
Voyez le résultat.
Initial HTML: <p><a href='http://example.com/' onclick='checkData()'>Link</a></p>
Cleaned HTML: <p><a href="http://example.com/" rel="nofollow">Link</a></p>