jsoup - Szybki przewodnik
jsoup to oparta na języku Java biblioteka do pracy z zawartością HTML. Zapewnia bardzo wygodny interfejs API do wyodrębniania i manipulowania danymi przy użyciu najlepszych metod DOM, CSS i jquery. Implementuje specyfikację WHATWG HTML5 i analizuje HTML do tego samego DOM, co współczesne przeglądarki.
Biblioteka jsoup implementuje specyfikację WHATWG HTML5 i analizuje zawartość HTML do tego samego DOM, co w nowoczesnych przeglądarkach.
Biblioteka jsonp zapewnia następujące funkcjonalności.
Multiple Read Support - Czyta i analizuje HTML za pomocą adresu URL, pliku lub ciągu.
CSS Selectors - Potrafi znaleźć i wyodrębnić dane za pomocą przechodzenia przez DOM lub selektorów CSS.
DOM Manipulation - Może manipulować elementami, atrybutami i tekstem HTML.
Prevent XSS attacks - Może czyścić treści przesłane przez użytkowników z określonej bezpiecznej białej listy, aby zapobiec atakom XSS.
Tidy - Wyświetla czysty HTML.
Handles invalid data - jsoup może obsługiwać niezamknięte znaczniki, niejawne znaczniki i może niezawodnie tworzyć strukturę dokumentu.
Konfiguracja środowiska lokalnego
JUnit to framework dla Javy, więc pierwszym wymaganiem jest zainstalowanie JDK na twoim komputerze.
Wymagania systemowe
JDK | 1.5 lub nowszy. |
---|---|
Pamięć | Brak minimalnych wymagań. |
Miejsca na dysku | Brak minimalnych wymagań. |
System operacyjny | Brak minimalnych wymagań. |
Krok 1: Zweryfikuj instalację Java na swoim komputerze
Przede wszystkim otwórz konsolę i wykonaj polecenie java w oparciu o system operacyjny, na którym pracujesz.
OS | Zadanie | Komenda |
---|---|---|
Windows | Otwórz konsolę poleceń | c: \> java -version |
Linux | Otwórz terminal poleceń | $ java -version |
Prochowiec | Otwórz Terminal | maszyna: <joseph $ java -version |
Sprawdźmy dane wyjściowe dla wszystkich systemów operacyjnych -
OS | Wynik |
---|---|
Windows | wersja java „1.6.0_21” Java (TM) SE Runtime Environment (kompilacja 1.6.0_21-b07) Maszyna wirtualna klienta Java HotSpot (TM) (kompilacja 17.0-b17, tryb mieszany, udostępnianie) |
Linux | wersja java „1.6.0_21” Java (TM) SE Runtime Environment (kompilacja 1.6.0_21-b07) Maszyna wirtualna klienta Java HotSpot (TM) (kompilacja 17.0-b17, tryb mieszany, udostępnianie) |
Prochowiec | wersja java „1.6.0_21” Java (TM) SE Runtime Environment (kompilacja 1.6.0_21-b07) Java HotSpot (TM) 64-bitowa maszyna wirtualna serwera (kompilacja 17.0-b17, tryb mieszany, udostępnianie) |
Jeśli nie masz zainstalowanej Java w swoim systemie, pobierz pakiet Java Software Development Kit (SDK) z poniższego łącza https://www.oracle.com. Zakładamy Java 1.6.0_21 jako zainstalowaną wersję dla tego samouczka.
Krok 2: Ustaw środowisko JAVA
Ustaw JAVA_HOMEzmienna środowiskowa wskazująca lokalizację katalogu podstawowego, w którym na komputerze jest zainstalowana Java. Na przykład.
OS | Wynik |
---|---|
Windows | Ustaw zmienną środowiskową JAVA_HOME na C: \ Program Files \ Java \ jdk1.6.0_21 |
Linux | eksportuj JAVA_HOME = / usr / local / java-current |
Prochowiec | eksportuj JAVA_HOME = / Library / Java / Home |
Dołącz lokalizację kompilatora Java do ścieżki systemowej.
OS | Wynik |
---|---|
Windows | Dołącz ciąg C:\Program Files\Java\jdk1.6.0_21\bin na końcu zmiennej systemowej, Path. |
Linux | export PATH = $ PATH: $ JAVA_HOME / bin / |
Prochowiec | nie wymagane |
Sprawdź instalację oprogramowania Java za pomocą polecenia java -version jak wyjaśniono powyżej.
Krok 3: Pobierz archiwum jsoup
Pobierz najnowszą wersję pliku jar jsoup z repozytorium Maven . W czasie pisania tego samouczka pobraliśmy plik jsoup-1.8.3.jar i skopiowaliśmy go do folderu C: \> jsoup.
OS | Nazwa archiwum |
---|---|
Windows | jsoup-1.8.3.jar |
Linux | jsoup-1.8.3.jar |
Prochowiec | jsoup-1.8.3.jar |
Krok 4: Ustaw środowisko jsoup
Ustaw JSOUP_HOMEzmienna środowiskowa wskazująca lokalizację katalogu podstawowego, w którym jest przechowywany plik jsoup jar na komputerze. Załóżmy, że zapisaliśmy plik jsoup-1.8.3.jar w folderze JSOUP.
Sr.No | System operacyjny i opis |
---|---|
1 | Windows Ustaw zmienną środowiskową JSOUP_HOME na C: \ JSOUP |
2 | Linux eksportuj JSOUP_HOME = / usr / local / JSOUP |
3 | Mac eksportuj JSOUP_HOME = / Library / JSOUP |
Krok 5: Ustaw zmienną CLASSPATH
Ustaw CLASSPATH zmienna środowiskowa wskazująca lokalizację jar JSOUP.
Sr.No | System operacyjny i opis |
---|---|
1 | Windows Ustaw zmienną środowiskową CLASSPATH na% CLASSPATH%;% JSOUP_HOME% \ jsoup-1.8.3.jar;.; |
2 | Linux eksportuj CLASSPATH = $ CLASSPATH: $ JSOUP_HOME / jsoup-1.8.3.jar :. |
3 | Mac eksportuj CLASSPATH = $ CLASSPATH: $ JSOUP_HOME / jsoup-1.8.3.jar :. |
Poniższy przykład pokaże parsowanie ciągu HTML do obiektu Document.
Składnia
Document document = Jsoup.parse(html);
Gdzie
document - obiekt dokumentu reprezentuje HTML DOM.
Jsoup - główna klasa do parsowania podanego ciągu HTML.
html - Ciąg HTML.
Opis
Metoda parse (String html) analizuje wejściowy kod HTML do nowego dokumentu. Ten obiekt dokumentu może być używany do przechodzenia i uzyskiwania szczegółowych informacji o html dom.
Przykład
Utwórz następujący program java za pomocą dowolnego wybranego edytora w, powiedzmy 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());
}
}
}
Sprawdź wynik
Skompiluj klasę przy użyciu javac kompilator w następujący sposób:
C:\jsoup>javac JsoupTester.java
Teraz uruchom JsoupTester, aby zobaczyć wynik.
C:\jsoup>java JsoupTester
Zobacz wynik.
Sample Title
Sample Content
Poniższy przykład pokaże parsowanie ciągu HTML fragement String do obiektu Element jako treść HTML.
Składnia
Document document = Jsoup.parseBodyFragment(html);
Element body = document.body();
Gdzie
document - obiekt dokumentu reprezentuje HTML DOM.
Jsoup - główna klasa do parsowania podanego ciągu HTML.
html - Ciąg fragmentu HTML.
body - reprezentuje elementy potomne elementu body dokumentu i jest równoważne z document.getElementsByTag ("body").
Opis
Metoda parseBodyFragment (String html) analizuje wejściowy kod HTML do nowego dokumentu. Ten obiekt dokumentu może być używany do przechodzenia i pobierania szczegółów fragmentu treści HTML.
Przykład
Utwórz następujący program java za pomocą dowolnego wybranego edytora w, powiedzmy 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());
}
}
}
Sprawdź wynik
Skompiluj klasę przy użyciu javac kompilator w następujący sposób:
C:\jsoup>javac JsoupTester.java
Teraz uruchom JsoupTester, aby zobaczyć wynik.
C:\jsoup>java JsoupTester
Zobacz wynik.
Sample Content
Poniższy przykład przedstawia pobieranie kodu HTML z sieci przy użyciu adresu URL, a następnie znajdowanie jego danych.
Składnia
String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();
Gdzie
document - obiekt dokumentu reprezentuje HTML DOM.
Jsoup - główna klasa do podłączenia adresu URL i pobrania ciągu HTML.
url - URL strony html do załadowania.
Opis
Metoda connect (url) nawiązuje połączenie z adresem URL, a metoda get () zwraca kod HTML żądanego adresu URL.
Przykład
Utwórz następujący program java za pomocą dowolnego wybranego edytora w, powiedzmy 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());
}
}
Sprawdź wynik
Skompiluj klasę przy użyciu javac kompilator w następujący sposób:
C:\jsoup>javac JsoupTester.java
Teraz uruchom JsoupTester, aby zobaczyć wynik.
C:\jsoup>java JsoupTester
Zobacz wynik.
Google
Poniższy przykład przedstawia pobieranie kodu HTML z dysku przy użyciu pliku, a następnie znajdowanie jego danych.
Składnia
String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();
Gdzie
document - obiekt dokumentu reprezentuje HTML DOM.
Jsoup - główna klasa do podłączenia adresu URL i pobrania ciągu HTML.
url - URL strony html do załadowania.
Opis
Metoda connect (url) nawiązuje połączenie z adresem URL, a metoda get () zwraca kod HTML żądanego adresu URL.
Przykład
Utwórz następujący program java za pomocą dowolnego wybranego edytora w, powiedzmy 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
Utwórz następujący plik test.htm w folderze C: \ jsoup.
<html>
<head>
<title>Sample Title</title>
</head>
<body>
<p>Sample Content</p>
</body>
</html>
Sprawdź wynik
Skompiluj klasę przy użyciu javac kompilator w następujący sposób:
C:\jsoup>javac JsoupTester.java
Teraz uruchom JsoupTester, aby zobaczyć wynik.
C:\jsoup>java JsoupTester
Zobacz wynik.
Sample Title
Poniższy przykład pokaże użycie metod podobnych do DOM po przeanalizowaniu ciągu HTML do obiektu Document.
Składnia
Document document = Jsoup.parse(html);
Element sampleDiv = document.getElementById("sampleDiv");
Elements links = sampleDiv.getElementsByTag("a");
Gdzie
document - obiekt dokumentu reprezentuje HTML DOM.
Jsoup - główna klasa do parsowania podanego ciągu HTML.
html - Ciąg HTML.
sampleDiv - Obiekt Element reprezentuje element węzła html identyfikowany przez id „sampleDiv”.
links - Obiekt Elements reprezentuje wiele elementów węzłowych oznaczonych znacznikiem „a”.
Opis
Metoda parse (String html) analizuje wejściowy kod HTML do nowego dokumentu. Ten obiekt dokumentu może być używany do przechodzenia i uzyskiwania szczegółowych informacji o html dom.
Przykład
Utwórz następujący program java za pomocą dowolnego wybranego edytora w, powiedzmy 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());
}
}
}
Sprawdź wynik
Skompiluj klasę przy użyciu javac kompilator w następujący sposób:
C:\jsoup>javac JsoupTester.java
Teraz uruchom JsoupTester, aby zobaczyć wynik.
C:\jsoup>java JsoupTester
Zobacz wynik.
Sample Title
Sample Content
Data: Google
Href: www.google.com
Text: Google
Poniższy przykład ilustruje użycie metod selektora po przeanalizowaniu ciągu HTML do obiektu Document. jsoup obsługuje selektory podobne do selektorów CSS.
Składnia
Document document = Jsoup.parse(html);
Element sampleDiv = document.getElementById("sampleDiv");
Elements links = sampleDiv.getElementsByTag("a");
Gdzie
document - obiekt dokumentu reprezentuje HTML DOM.
Jsoup - główna klasa do parsowania podanego ciągu HTML.
html - Ciąg HTML.
sampleDiv - Obiekt Element reprezentuje element węzła html identyfikowany przez id „sampleDiv”.
links - Obiekt Elements reprezentuje wiele elementów węzłowych oznaczonych znacznikiem „a”.
Opis
Metoda document.select (expression) analizuje dane wyrażenie selektora CSS w celu wybrania elementu html dom.
Przykład
Utwórz następujący program java za pomocą dowolnego wybranego edytora w, powiedzmy 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());
}
}
}
Sprawdź wynik
Skompiluj klasę przy użyciu javac kompilator w następujący sposób:
C:\jsoup>javac JsoupTester.java
Teraz uruchom JsoupTester, aby zobaczyć wynik.
C:\jsoup>java JsoupTester
Zobacz wynik.
Href: www.google.com
Text: Google
Name: google
Id: imageDiv
Text: Sample
Poniższy przykład pokaże użycie metody do uzyskania atrybutu elementu dom po przeanalizowaniu ciągu HTML do obiektu Document.
Składnia
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
System.out.println("Href: " + link.attr("href"));
Gdzie
document - obiekt dokumentu reprezentuje HTML DOM.
Jsoup - główna klasa do parsowania podanego ciągu HTML.
html - Ciąg HTML.
link - Obiekt Element reprezentuje element węzła html reprezentujący znacznik kotwicy.
link.attr() - metoda attr (atrybut) pobiera atrybut elementu.
Opis
Obiekt Element reprezentuje element dom i zapewnia różne metody uzyskiwania atrybutu elementu dom.
Przykład
Utwórz następujący program java za pomocą dowolnego wybranego edytora w, powiedzmy 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"));
}
}
Sprawdź wynik
Skompiluj klasę przy użyciu javac kompilator w następujący sposób:
C:\jsoup>javac JsoupTester.java
Teraz uruchom JsoupTester, aby zobaczyć wynik.
C:\jsoup>java JsoupTester
Zobacz wynik.
Href: www.google.com
Poniższy przykład ilustruje użycie metod do uzyskania tekstu po przeanalizowaniu ciągu HTML do obiektu Document.
Składnia
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
System.out.println("Text: " + link.text());
Gdzie
document - obiekt dokumentu reprezentuje HTML DOM.
Jsoup - główna klasa do parsowania podanego ciągu HTML.
html - Ciąg HTML.
link - Obiekt Element reprezentuje element węzła html reprezentujący znacznik kotwicy.
link.text() - metoda text () pobiera tekst elementu.
Opis
Obiekt Element reprezentuje dom elment i udostępnia różne metody uzyskiwania tekstu elementu dom.
Przykład
Utwórz następujący program java za pomocą dowolnego wybranego edytora w, powiedzmy 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());
}
}
Sprawdź wynik
Skompiluj klasę przy użyciu javac kompilator w następujący sposób:
C:\jsoup>javac JsoupTester.java
Teraz uruchom JsoupTester, aby zobaczyć wynik.
C:\jsoup>java JsoupTester
Zobacz wynik.
Text: Google
Poniższy przykład przedstawia użycie metod do uzyskania wewnętrznego i zewnętrznego kodu HTML po przeanalizowaniu ciągu HTML do obiektu Document.
Składnia
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());
Gdzie
document - obiekt dokumentu reprezentuje HTML DOM.
Jsoup - główna klasa do parsowania podanego ciągu HTML.
html - Ciąg HTML.
link - Obiekt Element reprezentuje element węzła html reprezentujący znacznik kotwicy.
link.outerHtml() - metoda externalHtml () pobiera kompletny html elementu.
link.html() - metoda html () pobiera element wewnętrzny html.
Opis
Obiekt Element reprezentuje element dom i zapewnia różne metody pobierania kodu HTML elementu dom.
Przykład
Utwórz następujący program java za pomocą dowolnego wybranego edytora w, powiedzmy 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());
}
}
Sprawdź wynik
Skompiluj klasę przy użyciu javac kompilator w następujący sposób:
C:\jsoup>javac JsoupTester.java
Teraz uruchom JsoupTester, aby zobaczyć wynik.
C:\jsoup>java JsoupTester
Zobacz wynik.
Outer HTML: <a href="www.google.com">Google</a>
Inner HTML: Google
Poniższy przykład pokaże metody, które mogą zapewnić względne i bezwzględne adresy URL obecne na stronie html.
Składnia
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"));
Gdzie
document - obiekt dokumentu reprezentuje HTML DOM.
Jsoup - główna klasa do łączenia się z adresem URL i pobierania zawartości html.
link - Obiekt Element reprezentuje element węzła html reprezentujący znacznik kotwicy.
link.attr("href")- podaje wartość href obecną w tagu kotwicy. Może być względne lub bezwzględne.
link.attr("abs:href") - dostarcza bezwzględny adres URL po rozstrzygnięciu względem podstawowego identyfikatora URI dokumentu.
link.absUrl("href") - dostarcza bezwzględny adres URL po rozstrzygnięciu względem podstawowego identyfikatora URI dokumentu.
Opis
Obiekt Element reprezentuje element domeny i zapewnia metody uzyskiwania względnych i bezwzględnych adresów URL obecnych na stronie html.
Przykład
Utwórz następujący program java za pomocą dowolnego wybranego edytora w, powiedzmy 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"));
}
}
Sprawdź wynik
Skompiluj klasę przy użyciu javac kompilator w następujący sposób:
C:\jsoup>javac JsoupTester.java
Teraz uruchom JsoupTester, aby zobaczyć wynik.
C:\jsoup>java JsoupTester
Zobacz wynik.
Relative Link: index.htm
Absolute Link: https://www.tutorialspoint.com/index.htm
Absolute Link: https://www.tutorialspoint.com/index.htm
Poniższy przykład pokaże użycie metody do ustawiania atrybutów elementu dom, zbiorczych aktualizacji i dodawania / usuwania metod klas po przeanalizowaniu ciągu HTML do obiektu Document.
Składnia
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
link.attr("href","www.yahoo.com");
link.addClass("header");
link.removeClass("header");
Gdzie
document - obiekt dokumentu reprezentuje HTML DOM.
Jsoup - główna klasa do parsowania podanego ciągu HTML.
html - Ciąg HTML.
link - Obiekt Element reprezentuje element węzła html reprezentujący znacznik kotwicy.
link.attr() - attr (atrybut, wartość) metoda ustawia atrybut elementu na odpowiednią wartość.
link.addClass() - metoda addClass (klasa) dodaj klasę pod atrybutem klasy.
link.removeClass() - metoda removeClass (klasa) usuwa klasę pod atrybutem klasy.
Opis
Obiekt Element reprezentuje element dom i zapewnia różne metody uzyskiwania atrybutu elementu dom.
Przykład
Utwórz następujący program java za pomocą dowolnego wybranego edytora w, powiedzmy 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());
}
}
Sprawdź wynik
Skompiluj klasę przy użyciu javac kompilator w następujący sposób:
C:\jsoup>javac JsoupTester.java
Teraz uruchom JsoupTester, aby zobaczyć wynik.
C:\jsoup>java JsoupTester
Zobacz wynik.
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>
Poniższy przykład ilustruje użycie metody do ustawiania, dołączania lub dołączania kodu HTML do elementu dom po przeanalizowaniu ciągu HTML do obiektu Document.
Składnia
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>");
Gdzie
document - obiekt dokumentu reprezentuje HTML DOM.
Jsoup - główna klasa do parsowania podanego ciągu HTML.
html - Ciąg HTML.
div - Obiekt Element reprezentuje element węzła html reprezentujący znacznik kotwicy.
div.html() - metoda html (content) zastępuje zewnętrzny html elementu odpowiednią wartością.
div.prepend() - metoda prepend (content) dodaje zawartość przed zewnętrznym html.
div.append() - metoda append (content) dodaje zawartość po zewnętrznym html.
Opis
Obiekt Element reprezentuje element domeny i zapewnia różne metody ustawiania, dołączania lub dołączania kodu HTML do elementu dom.
Przykład
Utwórz następujący program java za pomocą dowolnego wybranego edytora w, powiedzmy 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());
}
}
Sprawdź wynik
Skompiluj klasę przy użyciu javac kompilator w następujący sposób:
C:\jsoup>javac JsoupTester.java
Teraz uruchom JsoupTester, aby zobaczyć wynik.
C:\jsoup>java JsoupTester
Zobacz wynik.
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>
Poniższy przykład pokaże użycie metody do ustawiania, dodawania lub dołączania tekstu do elementu dom po przeanalizowaniu ciągu HTML do obiektu Document.
Składnia
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.");
Gdzie
document - obiekt dokumentu reprezentuje HTML DOM.
Jsoup - główna klasa do parsowania podanego ciągu HTML.
html - Ciąg HTML.
div - Obiekt Element reprezentuje element węzła html reprezentujący znacznik kotwicy.
div.text() - metoda text (content) zamienia zawartość elementu na odpowiednią wartość.
div.prepend() - metoda prepend (content) dodaje zawartość przed zewnętrznym html.
div.append() - metoda append (content) dodaje zawartość po zewnętrznym html.
Opis
Obiekt Element reprezentuje element domeny i zapewnia różne metody ustawiania, dołączania lub dołączania kodu HTML do elementu dom.
Przykład
Utwórz następujący program java za pomocą dowolnego wybranego edytora w, powiedzmy 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());
}
}
Sprawdź wynik
Skompiluj klasę przy użyciu javac kompilator w następujący sposób:
C:\jsoup>javac JsoupTester.java
Teraz uruchom JsoupTester, aby zobaczyć wynik.
C:\jsoup>java JsoupTester
Zobacz wynik.
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>
Poniższy przykład ilustruje zapobieganie atakom XSS lub atakom typu cross-site scripting.
Składnia
String safeHtml = Jsoup.clean(html, Whitelist.basic());
Gdzie
Jsoup - główna klasa do parsowania podanego ciągu HTML.
html - Początkowy ciąg HTML.
safeHtml - Wyczyść HTML.
Whitelist - Obiekt zapewniający domyślne konfiguracje w celu ochrony kodu HTML.
clean() - czyści html za pomocą białej listy.
Opis
Obiekt Jsoup oczyszcza kod HTML przy użyciu konfiguracji białej listy.
Przykład
Utwórz następujący program java za pomocą dowolnego wybranego edytora w, powiedzmy 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);
}
}
Sprawdź wynik
Skompiluj klasę przy użyciu javac kompilator w następujący sposób:
C:\jsoup>javac JsoupTester.java
Teraz uruchom JsoupTester, aby zobaczyć wynik.
C:\jsoup>java JsoupTester
Zobacz wynik.
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>