jsoup - Kurzanleitung
jsoup ist eine Java-basierte Bibliothek für die Arbeit mit HTML-basierten Inhalten. Es bietet eine sehr praktische API zum Extrahieren und Bearbeiten von Daten unter Verwendung der besten DOM-, CSS- und jquery-ähnlichen Methoden. Es implementiert die WHATWG HTML5-Spezifikation und analysiert HTML im selben DOM wie moderne Browser.
jsoup libary implementiert die WHATWG HTML5-Spezifikation und analysiert einen HTML-Inhalt in demselben DOM wie in den modernen Browsern.
Die jsonp-Bibliothek bietet die folgenden Funktionen.
Multiple Read Support - Es liest und analysiert HTML mithilfe von URL, Datei oder Zeichenfolge.
CSS Selectors - Es kann Daten mithilfe von DOM-Traversal- oder CSS-Selektoren finden und extrahieren.
DOM Manipulation - Es kann die HTML-Elemente, Attribute und den Text bearbeiten.
Prevent XSS attacks - Es kann vom Benutzer eingereichte Inhalte anhand einer bestimmten sicheren Whitelist bereinigen, um XSS-Angriffe zu verhindern.
Tidy - Es gibt ordentliches HTML aus.
Handles invalid data - jsoup kann nicht geschlossene Tags und implizite Tags verarbeiten und die Dokumentstruktur zuverlässig erstellen.
Einrichtung der lokalen Umgebung
JUnit ist ein Framework für Java. Die allererste Voraussetzung ist daher, dass JDK auf Ihrem Computer installiert ist.
System Anforderungen
JDK | 1,5 oder höher. |
---|---|
Erinnerung | Keine Mindestanforderung. |
Festplattenplatz | Keine Mindestanforderung. |
Betriebssystem | Keine Mindestanforderung. |
Schritt 1: Überprüfen Sie die Java-Installation auf Ihrem Computer
Öffnen Sie zunächst die Konsole und führen Sie einen Java-Befehl aus, der auf dem Betriebssystem basiert, an dem Sie arbeiten.
Betriebssystem | Aufgabe | Befehl |
---|---|---|
Windows | Öffnen Sie die Befehlskonsole | c: \> Java-Version |
Linux | Öffnen Sie das Befehlsterminal | $ java -version |
Mac | Terminal öffnen | Maschine: <joseph $ java -version |
Lassen Sie uns die Ausgabe für alle Betriebssysteme überprüfen -
Betriebssystem | Ausgabe |
---|---|
Windows | Java-Version "1.6.0_21" Java (TM) SE-Laufzeitumgebung (Build 1.6.0_21-b07) Java HotSpot (TM) -Client-VM (Build 17.0-b17, gemischter Modus, Freigabe) |
Linux | Java-Version "1.6.0_21" Java (TM) SE-Laufzeitumgebung (Build 1.6.0_21-b07) Java HotSpot (TM) -Client-VM (Build 17.0-b17, gemischter Modus, Freigabe) |
Mac | Java-Version "1.6.0_21" Java (TM) SE-Laufzeitumgebung (Build 1.6.0_21-b07) 64-Bit-Server-VM von Java HotSpot (TM) (Build 17.0-b17, gemischter Modus, Freigabe) |
Wenn auf Ihrem System kein Java installiert ist, laden Sie das Java Software Development Kit (SDK) über den folgenden Link herunter https://www.oracle.com. Wir gehen davon aus, dass Java 1.6.0_21 die installierte Version für dieses Tutorial ist.
Schritt 2: Stellen Sie die JAVA-Umgebung ein
Stellen Sie die JAVA_HOMEUmgebungsvariable, die auf den Speicherort des Basisverzeichnisses verweist, in dem Java auf Ihrem Computer installiert ist. Zum Beispiel.
Betriebssystem | Ausgabe |
---|---|
Windows | Setzen Sie die Umgebungsvariable JAVA_HOME auf C: \ Programme \ Java \ jdk1.6.0_21 |
Linux | export JAVA_HOME = / usr / local / java-current |
Mac | export JAVA_HOME = / Library / Java / Home |
Hängen Sie den Java-Compiler-Speicherort an den Systempfad an.
Betriebssystem | Ausgabe |
---|---|
Windows | Hängen Sie die Zeichenfolge an C:\Program Files\Java\jdk1.6.0_21\bin am Ende der Systemvariablen, Path. |
Linux | export PATH = $ PATH: $ JAVA_HOME / bin / |
Mac | nicht benötigt |
Überprüfen Sie die Java-Installation mit dem Befehl java -version wie oben erklärt.
Schritt 3: Laden Sie das jsoup-Archiv herunter
Laden Sie die neueste Version der jsoup jar-Datei aus dem Maven Repository herunter . Zum Zeitpunkt des Schreibens dieses Tutorials haben wir jsoup-1.8.3.jar heruntergeladen und in den Ordner C: \> jsoup kopiert.
Betriebssystem | Archivname |
---|---|
Windows | jsoup-1.8.3.jar |
Linux | jsoup-1.8.3.jar |
Mac | jsoup-1.8.3.jar |
Schritt 4: Stellen Sie die jsoup-Umgebung ein
Stellen Sie die JSOUP_HOMEUmgebungsvariable, die auf den Speicherort des Basisverzeichnisses verweist, in dem jsoup jar auf Ihrem Computer gespeichert ist. Nehmen wir an, wir haben jsoup-1.8.3.jar im JSOUP-Ordner gespeichert.
Sr.Nr. | Betriebssystem & Beschreibung |
---|---|
1 | Windows Setzen Sie die Umgebungsvariable JSOUP_HOME auf C: \ JSOUP |
2 | Linux export JSOUP_HOME = / usr / local / JSOUP |
3 | Mac export JSOUP_HOME = / Library / JSOUP |
Schritt 5: Setzen Sie die Variable CLASSPATH
Stellen Sie die CLASSPATH Umgebungsvariable, die auf den Speicherort des JSOUP-JARs verweist.
Sr.Nr. | Betriebssystem & Beschreibung |
---|---|
1 | Windows Setzen Sie die Umgebungsvariable CLASSPATH auf% 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:. |
Das folgende Beispiel zeigt das Parsen einer HTML-Zeichenfolge in ein Dokumentobjekt.
Syntax
Document document = Jsoup.parse(html);
Wo
document - Das Dokumentobjekt repräsentiert das HTML-DOM.
Jsoup - Hauptklasse zum Parsen des angegebenen HTML-Strings.
html - HTML-Zeichenfolge.
Beschreibung
Die Methode parse (String html) analysiert den eingegebenen HTML-Code in ein neues Dokument. Dieses Dokumentobjekt kann zum Durchlaufen und Abrufen von Details des HTML-Doms verwendet werden.
Beispiel
Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl in 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());
}
}
}
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt:
C:\jsoup>javac JsoupTester.java
Führen Sie nun den JsoupTester aus, um das Ergebnis anzuzeigen.
C:\jsoup>java JsoupTester
Siehe das Ergebnis.
Sample Title
Sample Content
Das folgende Beispiel zeigt das Parsen eines HTML-Fraging-Strings in ein Element-Objekt als HTML-Body.
Syntax
Document document = Jsoup.parseBodyFragment(html);
Element body = document.body();
Wo
document - Das Dokumentobjekt repräsentiert das HTML-DOM.
Jsoup - Hauptklasse zum Parsen des angegebenen HTML-Strings.
html - HTML-Fragment-String.
body - stellt untergeordnete Elementelemente des Body-Elements des Dokuments dar und entspricht document.getElementsByTag ("body").
Beschreibung
Die Methode parseBodyFragment (String html) analysiert den eingegebenen HTML-Code in ein neues Dokument. Dieses Dokumentobjekt kann verwendet werden, um Details des HTML-Body-Fragments zu durchlaufen und abzurufen.
Beispiel
Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl in 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());
}
}
}
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt:
C:\jsoup>javac JsoupTester.java
Führen Sie nun den JsoupTester aus, um das Ergebnis anzuzeigen.
C:\jsoup>java JsoupTester
Siehe das Ergebnis.
Sample Content
Das folgende Beispiel zeigt das Abrufen eines HTML-Codes aus dem Web mithilfe einer URL und das Auffinden seiner Daten.
Syntax
String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();
Wo
document - Das Dokumentobjekt repräsentiert das HTML-DOM.
Jsoup - Hauptklasse, um die URL zu verbinden und den HTML-String zu erhalten.
url - URL der zu ladenden HTML-Seite.
Beschreibung
Die Methode connect (url) stellt eine Verbindung zur URL her und die Methode get () gibt den HTML-Code der angeforderten URL zurück.
Beispiel
Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl in 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());
}
}
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt:
C:\jsoup>javac JsoupTester.java
Führen Sie nun den JsoupTester aus, um das Ergebnis anzuzeigen.
C:\jsoup>java JsoupTester
Siehe das Ergebnis.
Google
Das folgende Beispiel zeigt das Abrufen eines HTML-Codes von der Festplatte mithilfe einer Datei und das Auffinden der Daten.
Syntax
String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();
Wo
document - Das Dokumentobjekt repräsentiert das HTML-DOM.
Jsoup - Hauptklasse, um die URL zu verbinden und den HTML-String zu erhalten.
url - URL der zu ladenden HTML-Seite.
Beschreibung
Die Methode connect (url) stellt eine Verbindung zur URL her und die Methode get () gibt den HTML-Code der angeforderten URL zurück.
Beispiel
Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl in 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
Erstellen Sie die folgende Datei test.htm im Ordner C: \ jsoup.
<html>
<head>
<title>Sample Title</title>
</head>
<body>
<p>Sample Content</p>
</body>
</html>
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt:
C:\jsoup>javac JsoupTester.java
Führen Sie nun den JsoupTester aus, um das Ergebnis anzuzeigen.
C:\jsoup>java JsoupTester
Siehe das Ergebnis.
Sample Title
Das folgende Beispiel zeigt die Verwendung von DOM-ähnlichen Methoden nach dem Parsen eines HTML-Strings in ein Dokumentobjekt.
Syntax
Document document = Jsoup.parse(html);
Element sampleDiv = document.getElementById("sampleDiv");
Elements links = sampleDiv.getElementsByTag("a");
Wo
document - Das Dokumentobjekt repräsentiert das HTML-DOM.
Jsoup - Hauptklasse zum Parsen des angegebenen HTML-Strings.
html - HTML-Zeichenfolge.
sampleDiv - Das Elementobjekt repräsentiert das HTML-Knotenelement, das durch die ID "sampleDiv" gekennzeichnet ist.
links - Das Elementobjekt repräsentiert die mehreren Knotenelemente, die durch das Tag "a" gekennzeichnet sind.
Beschreibung
Die Methode parse (String html) analysiert den eingegebenen HTML-Code in ein neues Dokument. Dieses Dokumentobjekt kann zum Durchlaufen und Abrufen von Details des HTML-Doms verwendet werden.
Beispiel
Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl in 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());
}
}
}
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt:
C:\jsoup>javac JsoupTester.java
Führen Sie nun den JsoupTester aus, um das Ergebnis anzuzeigen.
C:\jsoup>java JsoupTester
Siehe das Ergebnis.
Sample Title
Sample Content
Data: Google
Href: www.google.com
Text: Google
Das folgende Beispiel zeigt die Verwendung von Auswahlmethoden nach dem Parsen einer HTML-Zeichenfolge in ein Dokumentobjekt. jsoup unterstützt Selektoren ähnlich wie CSS-Selektoren.
Syntax
Document document = Jsoup.parse(html);
Element sampleDiv = document.getElementById("sampleDiv");
Elements links = sampleDiv.getElementsByTag("a");
Wo
document - Das Dokumentobjekt repräsentiert das HTML-DOM.
Jsoup - Hauptklasse zum Parsen des angegebenen HTML-Strings.
html - HTML-Zeichenfolge.
sampleDiv - Das Elementobjekt repräsentiert das HTML-Knotenelement, das durch die ID "sampleDiv" gekennzeichnet ist.
links - Das Elementobjekt repräsentiert die mehreren Knotenelemente, die durch das Tag "a" gekennzeichnet sind.
Beschreibung
Die Methode document.select (Ausdruck) analysiert den angegebenen CSS-Selektorausdruck, um ein HTML-Dom-Element auszuwählen.
Beispiel
Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl in 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());
}
}
}
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt:
C:\jsoup>javac JsoupTester.java
Führen Sie nun den JsoupTester aus, um das Ergebnis anzuzeigen.
C:\jsoup>java JsoupTester
Siehe das Ergebnis.
Href: www.google.com
Text: Google
Name: google
Id: imageDiv
Text: Sample
Das folgende Beispiel zeigt die Verwendung der Methode zum Abrufen des Attributs eines dom-Elements nach dem Parsen eines HTML-Strings in ein Document-Objekt.
Syntax
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
System.out.println("Href: " + link.attr("href"));
Wo
document - Das Dokumentobjekt repräsentiert das HTML-DOM.
Jsoup - Hauptklasse zum Parsen des angegebenen HTML-Strings.
html - HTML-Zeichenfolge.
link - Das Elementobjekt repräsentiert das HTML-Knotenelement, das das Ankertag darstellt.
link.attr() - Die Methode attr (attribute) ruft das Elementattribut ab.
Beschreibung
Das Elementobjekt stellt ein Dom-Element dar und bietet verschiedene Methoden, um das Attribut eines Dom-Elements abzurufen.
Beispiel
Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl in 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"));
}
}
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt:
C:\jsoup>javac JsoupTester.java
Führen Sie nun den JsoupTester aus, um das Ergebnis anzuzeigen.
C:\jsoup>java JsoupTester
Siehe das Ergebnis.
Href: www.google.com
Das folgende Beispiel zeigt die Verwendung von Methoden zum Abrufen von Text nach dem Parsen eines HTML-Strings in ein Dokumentobjekt.
Syntax
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
System.out.println("Text: " + link.text());
Wo
document - Das Dokumentobjekt repräsentiert das HTML-DOM.
Jsoup - Hauptklasse zum Parsen des angegebenen HTML-Strings.
html - HTML-Zeichenfolge.
link - Das Elementobjekt repräsentiert das HTML-Knotenelement, das das Ankertag darstellt.
link.text() - Die Methode text () ruft den Elementtext ab.
Beschreibung
Das Elementobjekt stellt ein Dom-Element dar und bietet verschiedene Methoden, um den Text eines Dom-Elements abzurufen.
Beispiel
Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl in 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());
}
}
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt:
C:\jsoup>javac JsoupTester.java
Führen Sie nun den JsoupTester aus, um das Ergebnis anzuzeigen.
C:\jsoup>java JsoupTester
Siehe das Ergebnis.
Text: Google
Das folgende Beispiel zeigt die Verwendung von Methoden zum Abrufen von innerem und äußerem HTML nach dem Parsen eines HTML-Strings in ein Dokumentobjekt.
Syntax
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());
Wo
document - Das Dokumentobjekt repräsentiert das HTML-DOM.
Jsoup - Hauptklasse zum Parsen des angegebenen HTML-Strings.
html - HTML-Zeichenfolge.
link - Das Elementobjekt repräsentiert das HTML-Knotenelement, das das Ankertag darstellt.
link.outerHtml() - Die OuterHtml () -Methode ruft das vollständige HTML-Element ab.
link.html() - Die Methode html () ruft das Element inner html ab.
Beschreibung
Das Elementobjekt stellt ein Dom-Element dar und bietet verschiedene Methoden zum Abrufen des HTML-Codes eines Dom-Elements.
Beispiel
Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl in 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());
}
}
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt:
C:\jsoup>javac JsoupTester.java
Führen Sie nun den JsoupTester aus, um das Ergebnis anzuzeigen.
C:\jsoup>java JsoupTester
Siehe das Ergebnis.
Outer HTML: <a href="www.google.com">Google</a>
Inner HTML: Google
Das folgende Beispiel zeigt Methoden, die sowohl relative als auch absolute URLs auf der HTML-Seite bereitstellen können.
Syntax
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"));
Wo
document - Das Dokumentobjekt repräsentiert das HTML-DOM.
Jsoup - Hauptklasse, um eine Verbindung zu einer URL herzustellen und den HTML-Inhalt abzurufen.
link - Das Elementobjekt repräsentiert das HTML-Knotenelement, das das Ankertag darstellt.
link.attr("href")- liefert den Wert von href, der im Ankertag vorhanden ist. Es kann relativ oder absolut sein.
link.attr("abs:href") - liefert die absolute URL nach dem Auflösen anhand des Basis-URI des Dokuments.
link.absUrl("href") - liefert die absolute URL nach dem Auflösen anhand des Basis-URI des Dokuments.
Beschreibung
Das Elementobjekt stellt eine Domäne dar und bietet Methoden, um sowohl relative als auch absolute URLs abzurufen, die auf der HTML-Seite vorhanden sind.
Beispiel
Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl in 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"));
}
}
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt:
C:\jsoup>javac JsoupTester.java
Führen Sie nun den JsoupTester aus, um das Ergebnis anzuzeigen.
C:\jsoup>java JsoupTester
Siehe das Ergebnis.
Relative Link: index.htm
Absolute Link: https://www.tutorialspoint.com/index.htm
Absolute Link: https://www.tutorialspoint.com/index.htm
Das folgende Beispiel zeigt die Verwendung einer Methode zum Festlegen von Attributen eines dom-Elements, Massenaktualisierungen und Hinzufügen / Entfernen von Klassenmethoden nach dem Parsen eines HTML-Strings in ein Document-Objekt.
Syntax
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
link.attr("href","www.yahoo.com");
link.addClass("header");
link.removeClass("header");
Wo
document - Das Dokumentobjekt repräsentiert das HTML-DOM.
Jsoup - Hauptklasse zum Parsen des angegebenen HTML-Strings.
html - HTML-Zeichenfolge.
link - Das Elementobjekt repräsentiert das HTML-Knotenelement, das das Ankertag darstellt.
link.attr() - Die Methode attr (Attribut, Wert) setzt dem Elementattribut den entsprechenden Wert.
link.addClass() - Die Methode addClass (class) fügt die Klasse unter dem Klassenattribut hinzu.
link.removeClass() - Die Methode removeClass (class) entfernt die Klasse unter dem Klassenattribut.
Beschreibung
Das Elementobjekt stellt ein Dom-Element dar und bietet verschiedene Methoden, um das Attribut eines Dom-Elements abzurufen.
Beispiel
Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl in 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());
}
}
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt:
C:\jsoup>javac JsoupTester.java
Führen Sie nun den JsoupTester aus, um das Ergebnis anzuzeigen.
C:\jsoup>java JsoupTester
Siehe das Ergebnis.
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>
Das folgende Beispiel zeigt die Verwendung einer Methode zum Festlegen, Voranstellen oder Anhängen von HTML an ein dom-Element nach dem Parsen eines HTML-Strings in ein Document-Objekt.
Syntax
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>");
Wo
document - Das Dokumentobjekt repräsentiert das HTML-DOM.
Jsoup - Hauptklasse zum Parsen des angegebenen HTML-Strings.
html - HTML-Zeichenfolge.
div - Das Elementobjekt repräsentiert das HTML-Knotenelement, das das Ankertag darstellt.
div.html() - Die HTML-Methode (Inhalt) ersetzt das äußere HTML des Elements durch den entsprechenden Wert.
div.prepend() - Die Methode prepend (content) fügt den Inhalt vor dem äußeren HTML-Code hinzu.
div.append() - Die Methode append (content) fügt den Inhalt nach dem äußeren HTML-Code hinzu.
Beschreibung
Das Elementobjekt stellt ein Dom-Element dar und bietet verschiedene Methoden zum Festlegen, Voranstellen oder Anhängen von HTML an ein Dom-Element.
Beispiel
Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl in 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());
}
}
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt:
C:\jsoup>javac JsoupTester.java
Führen Sie nun den JsoupTester aus, um das Ergebnis anzuzeigen.
C:\jsoup>java JsoupTester
Siehe das Ergebnis.
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>
Das folgende Beispiel zeigt die Verwendung einer Methode zum Festlegen, Voranstellen oder Anhängen von Text an ein dom-Element nach dem Parsen einer HTML-Zeichenfolge in ein Dokumentobjekt.
Syntax
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.");
Wo
document - Das Dokumentobjekt repräsentiert das HTML-DOM.
Jsoup - Hauptklasse zum Parsen des angegebenen HTML-Strings.
html - HTML-Zeichenfolge.
div - Das Elementobjekt repräsentiert das HTML-Knotenelement, das das Ankertag darstellt.
div.text() - Die Textmethode (Inhalt) ersetzt den Inhalt des Elements durch den entsprechenden Wert.
div.prepend() - Die Methode prepend (content) fügt den Inhalt vor dem äußeren HTML-Code hinzu.
div.append() - Die Methode append (content) fügt den Inhalt nach dem äußeren HTML-Code hinzu.
Beschreibung
Das Elementobjekt stellt ein Dom-Element dar und bietet verschiedene Methoden zum Festlegen, Voranstellen oder Anhängen von HTML an ein Dom-Element.
Beispiel
Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl in 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());
}
}
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt:
C:\jsoup>javac JsoupTester.java
Führen Sie nun den JsoupTester aus, um das Ergebnis anzuzeigen.
C:\jsoup>java JsoupTester
Siehe das Ergebnis.
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>
Das folgende Beispiel zeigt die Verhinderung von XSS-Angriffen oder Cross-Site-Scripting-Angriffen.
Syntax
String safeHtml = Jsoup.clean(html, Whitelist.basic());
Wo
Jsoup - Hauptklasse zum Parsen des angegebenen HTML-Strings.
html - Anfänglicher HTML-String.
safeHtml - Bereinigtes HTML.
Whitelist - Objekt zur Bereitstellung von Standardkonfigurationen zum Schutz von HTML.
clean() - Bereinigt den HTML-Code mithilfe der Whitelist.
Beschreibung
Das Jsoup-Objekt bereinigt ein HTML mithilfe von Whitelist-Konfigurationen.
Beispiel
Erstellen Sie das folgende Java-Programm mit einem beliebigen Editor Ihrer Wahl in 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);
}
}
Überprüfen Sie das Ergebnis
Kompilieren Sie die Klasse mit javac Compiler wie folgt:
C:\jsoup>javac JsoupTester.java
Führen Sie nun den JsoupTester aus, um das Ergebnis anzuzeigen.
C:\jsoup>java JsoupTester
Siehe das Ergebnis.
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>