jsoup - Краткое руководство
jsoup - это библиотека на основе Java для работы с содержимым на основе HTML. Он предоставляет очень удобный API для извлечения данных и управления ими с использованием лучших методов, подобных DOM, CSS и jquery. Он реализует спецификацию WHATWG HTML5 и анализирует HTML в той же модели DOM, что и современные браузеры.
Библиотека jsoup реализует спецификацию WHATWG HTML5 и анализирует содержимое HTML в той же модели DOM, что и в современных браузерах.
Библиотека jsonp предоставляет следующие функции.
Multiple Read Support - Он читает и анализирует HTML, используя URL, файл или строку.
CSS Selectors - Он может находить и извлекать данные, используя обход DOM или CSS-селекторы.
DOM Manipulation - Он может манипулировать элементами HTML, атрибутами и текстом.
Prevent XSS attacks - Он может очищать отправленный пользователем контент по заданному безопасному белому списку, чтобы предотвратить атаки XSS.
Tidy - Выводит аккуратный HTML.
Handles invalid data - jsoup может обрабатывать незакрытые теги, неявные теги и может надежно создавать структуру документа.
Настройка локальной среды
JUnit - это платформа для Java, поэтому самое первое требование - установить JDK на вашем компьютере.
Системные требования
JDK | 1.5 или выше. |
---|---|
объем памяти | Нет минимальных требований. |
Дисковое пространство | Нет минимальных требований. |
Операционная система | Нет минимальных требований. |
Шаг 1. Проверьте установку Java на вашем компьютере
Прежде всего, откройте консоль и выполните java-команду в зависимости от операционной системы, над которой вы работаете.
Операционные системы | Задача | Команда |
---|---|---|
Windows | Открыть командную консоль | c: \> java -версия |
Linux | Открыть командный терминал | $ java -версия |
Mac | Открыть Терминал | машина: <joseph $ java -version |
Давайте проверим вывод для всех операционных систем -
Операционные системы | Вывод |
---|---|
Windows | версия java "1.6.0_21" Среда выполнения Java (TM) SE (сборка 1.6.0_21-b07) Клиентская виртуальная машина Java HotSpot (TM) (сборка 17.0-b17, смешанный режим, совместное использование) |
Linux | версия java "1.6.0_21" Среда выполнения Java (TM) SE (сборка 1.6.0_21-b07) Клиентская виртуальная машина Java HotSpot (TM) (сборка 17.0-b17, смешанный режим, совместное использование) |
Mac | версия java "1.6.0_21" Среда выполнения Java (TM) SE (сборка 1.6.0_21-b07) 64-разрядная серверная виртуальная машина Java HotSpot (TM) (сборка 17.0-b17, смешанный режим, совместное использование) |
Если в вашей системе не установлена Java, загрузите Java Software Development Kit (SDK) по следующей ссылке https://www.oracle.com. Мы предполагаем, что Java 1.6.0_21 является установленной версией для этого руководства.
Шаг 2: Установите среду JAVA
Установить JAVA_HOMEпеременная среды, указывающая на расположение базового каталога, в котором установлена Java на вашем компьютере. Например.
Операционные системы | Вывод |
---|---|
Windows | Установите для переменной среды JAVA_HOME значение C: \ Program Files \ Java \ jdk1.6.0_21 |
Linux | экспорт JAVA_HOME = / usr / local / java-current |
Mac | экспорт JAVA_HOME = / Библиотека / Java / Home |
Добавьте расположение компилятора Java в системный путь.
Операционные системы | Вывод |
---|---|
Windows | Добавить строку C:\Program Files\Java\jdk1.6.0_21\bin в конце системной переменной, Path. |
Linux | экспорт ПУТЬ = $ ПУТЬ: $ JAVA_HOME / bin / |
Mac | не требуется |
Проверьте установку Java с помощью команды java -version как объяснено выше.
Шаг 3. Загрузите архив jsoup
Загрузите последнюю версию файла jsoup jar из репозитория Maven . На момент написания этого руководства мы загрузили jsoup-1.8.3.jar и скопировали его в папку C: \> jsoup.
Операционные системы | Имя архива |
---|---|
Windows | jsoup-1.8.3.jar |
Linux | jsoup-1.8.3.jar |
Mac | jsoup-1.8.3.jar |
Шаг 4. Установите среду jsoup
Установить JSOUP_HOMEпеременная среды, указывающая на местоположение базового каталога, в котором jsoup jar хранится на вашем компьютере. Предположим, мы сохранили jsoup-1.8.3.jar в папке JSOUP.
Старший Нет | ОС и описание |
---|---|
1 | Windows Установите для переменной среды JSOUP_HOME значение C: \ JSOUP |
2 | Linux экспорт JSOUP_HOME = / usr / local / JSOUP |
3 | Mac экспорт JSOUP_HOME = / Библиотека / JSOUP |
Шаг 5: установите переменную CLASSPATH
Установить CLASSPATH переменная среды, указывающая на расположение jar-файла JSOUP.
Старший Нет | ОС и описание |
---|---|
1 | Windows Установите для переменной среды CLASSPATH значение% CLASSPATH%;% JSOUP_HOME% \ jsoup-1.8.3.jar;.; |
2 | Linux экспорт CLASSPATH = $ CLASSPATH: $ JSOUP_HOME / jsoup-1.8.3.jar :. |
3 | Mac экспорт CLASSPATH = $ CLASSPATH: $ JSOUP_HOME / jsoup-1.8.3.jar :. |
В следующем примере будет продемонстрирован синтаксический анализ строки HTML в объект Document.
Синтаксис
Document document = Jsoup.parse(html);
где
document - объект документа представляет HTML DOM.
Jsoup - основной класс для анализа данной строки HTML.
html - HTML-строка.
Описание
Метод parse (String html) анализирует введенный HTML в новый документ. Этот объект документа можно использовать для просмотра и получения деталей html dom.
пример
Создайте следующую java-программу, используя любой редактор по вашему выбору, например, 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());
}
}
}
Проверить результат
Скомпилируйте класс, используя javac компилятор следующим образом:
C:\jsoup>javac JsoupTester.java
Теперь запустите JsoupTester, чтобы увидеть результат.
C:\jsoup>java JsoupTester
Смотрите результат.
Sample Title
Sample Content
В следующем примере будет продемонстрирован синтаксический анализ строки фрагмента HTML в объект Element в виде тела html.
Синтаксис
Document document = Jsoup.parseBodyFragment(html);
Element body = document.body();
где
document - объект документа представляет HTML DOM.
Jsoup - основной класс для анализа данной строки HTML.
html - Строка фрагмента HTML.
body - представляет дочерний элемент элемента body документа и эквивалентен document.getElementsByTag ("body").
Описание
Метод parseBodyFragment (String html) анализирует входной HTML-код в новый документ. Этот объект документа можно использовать для просмотра и получения сведений о фрагменте тела HTML.
пример
Создайте следующую java-программу, используя любой редактор по вашему выбору, например, 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());
}
}
}
Проверить результат
Скомпилируйте класс, используя javac компилятор следующим образом:
C:\jsoup>javac JsoupTester.java
Теперь запустите JsoupTester, чтобы увидеть результат.
C:\jsoup>java JsoupTester
Смотрите результат.
Sample Content
В следующем примере будет продемонстрировано получение HTML-кода из Интернета с использованием URL-адреса, а затем поиск его данных.
Синтаксис
String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();
где
document - объект документа представляет HTML DOM.
Jsoup - основной класс для подключения URL-адреса и получения строки HTML.
url - URL-адрес html-страницы для загрузки.
Описание
Метод connect (url) устанавливает соединение с url, а метод get () возвращает html запрошенного url.
пример
Создайте следующую java-программу, используя любой редактор по вашему выбору, например, 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());
}
}
Проверить результат
Скомпилируйте класс, используя javac компилятор следующим образом:
C:\jsoup>javac JsoupTester.java
Теперь запустите JsoupTester, чтобы увидеть результат.
C:\jsoup>java JsoupTester
Смотрите результат.
Google
В следующем примере будет продемонстрировано получение HTML-кода с диска с помощью файла, а затем поиск его данных.
Синтаксис
String url = "http://www.google.com";
Document document = Jsoup.connect(url).get();
где
document - объект документа представляет HTML DOM.
Jsoup - основной класс для подключения URL-адреса и получения строки HTML.
url - URL-адрес html-страницы для загрузки.
Описание
Метод connect (url) устанавливает соединение с url, а метод get () возвращает html запрошенного url.
пример
Создайте следующую java-программу, используя любой редактор по вашему выбору, например, 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
Создайте следующий файл test.htm в папке C: \ jsoup.
<html>
<head>
<title>Sample Title</title>
</head>
<body>
<p>Sample Content</p>
</body>
</html>
Проверить результат
Скомпилируйте класс, используя javac компилятор следующим образом:
C:\jsoup>javac JsoupTester.java
Теперь запустите JsoupTester, чтобы увидеть результат.
C:\jsoup>java JsoupTester
Смотрите результат.
Sample Title
В следующем примере будет продемонстрировано использование методов, подобных DOM, после синтаксического анализа строки HTML в объект Document.
Синтаксис
Document document = Jsoup.parse(html);
Element sampleDiv = document.getElementById("sampleDiv");
Elements links = sampleDiv.getElementsByTag("a");
где
document - объект документа представляет HTML DOM.
Jsoup - основной класс для анализа данной строки HTML.
html - HTML-строка.
sampleDiv - Объект Element представляет собой элемент узла html, идентифицированный идентификатором sampleDiv.
links - Объект Elements представляет собой несколько узловых элементов, обозначенных тегом «a».
Описание
Метод parse (String html) анализирует введенный HTML в новый документ. Этот объект документа можно использовать для просмотра и получения деталей html dom.
пример
Создайте следующую java-программу, используя любой редактор по вашему выбору, например, 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());
}
}
}
Проверить результат
Скомпилируйте класс, используя javac компилятор следующим образом:
C:\jsoup>javac JsoupTester.java
Теперь запустите JsoupTester, чтобы увидеть результат.
C:\jsoup>java JsoupTester
Смотрите результат.
Sample Title
Sample Content
Data: Google
Href: www.google.com
Text: Google
В следующем примере будет продемонстрировано использование методов селектора после синтаксического анализа строки HTML в объект Document. jsoup поддерживает селекторы, аналогичные селекторам CSS.
Синтаксис
Document document = Jsoup.parse(html);
Element sampleDiv = document.getElementById("sampleDiv");
Elements links = sampleDiv.getElementsByTag("a");
где
document - объект документа представляет HTML DOM.
Jsoup - основной класс для анализа данной строки HTML.
html - HTML-строка.
sampleDiv - Объект Element представляет собой элемент узла html, идентифицированный идентификатором sampleDiv.
links - Объект Elements представляет собой несколько узловых элементов, обозначенных тегом «a».
Описание
Метод document.select (expression) анализирует данное выражение селектора CSS, чтобы выбрать элемент html dom.
пример
Создайте следующую java-программу, используя любой редактор по вашему выбору, например, 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());
}
}
}
Проверить результат
Скомпилируйте класс, используя javac компилятор следующим образом:
C:\jsoup>javac JsoupTester.java
Теперь запустите JsoupTester, чтобы увидеть результат.
C:\jsoup>java JsoupTester
Смотрите результат.
Href: www.google.com
Text: Google
Name: google
Id: imageDiv
Text: Sample
В следующем примере будет продемонстрировано использование метода для получения атрибута элемента dom после синтаксического анализа строки HTML в объект Document.
Синтаксис
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
System.out.println("Href: " + link.attr("href"));
где
document - объект документа представляет HTML DOM.
Jsoup - основной класс для анализа данной строки HTML.
html - HTML-строка.
link - Объект Element представляет собой элемент узла html, представляющий тег привязки.
link.attr() - Метод attr (attribute) получает атрибут элемента.
Описание
Объект Element представляет собой дом-элемент и предоставляет различные методы для получения атрибута дом-элемента.
пример
Создайте следующую java-программу, используя любой редактор по вашему выбору, например, 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"));
}
}
Проверить результат
Скомпилируйте класс, используя javac компилятор следующим образом:
C:\jsoup>javac JsoupTester.java
Теперь запустите JsoupTester, чтобы увидеть результат.
C:\jsoup>java JsoupTester
Смотрите результат.
Href: www.google.com
В следующем примере будет продемонстрировано использование методов для получения текста после синтаксического анализа строки HTML в объект Document.
Синтаксис
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
System.out.println("Text: " + link.text());
где
document - объект документа представляет HTML DOM.
Jsoup - основной класс для анализа данной строки HTML.
html - HTML-строка.
link - Объект Element представляет собой элемент узла html, представляющий тег привязки.
link.text() - метод text () получает текст элемента.
Описание
Объект Element представляет собой доменный элемент и предоставляет различные методы для получения текста в доменном элементе.
пример
Создайте следующую java-программу, используя любой редактор по вашему выбору, например, 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());
}
}
Проверить результат
Скомпилируйте класс, используя javac компилятор следующим образом:
C:\jsoup>javac JsoupTester.java
Теперь запустите JsoupTester, чтобы увидеть результат.
C:\jsoup>java JsoupTester
Смотрите результат.
Text: Google
В следующем примере будет продемонстрировано использование методов для получения внутреннего html и внешнего html после синтаксического анализа строки HTML в объект Document.
Синтаксис
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());
где
document - объект документа представляет HTML DOM.
Jsoup - основной класс для анализа данной строки HTML.
html - HTML-строка.
link - Объект Element представляет собой элемент узла html, представляющий тег привязки.
link.outerHtml() - Метод outerHtml () получает полный html элемента.
link.html() - Метод html () извлекает внутренний html элемента.
Описание
Объект Element представляет собой дом-элемент и предоставляет различные методы для получения HTML-кода элемента.
пример
Создайте следующую java-программу, используя любой редактор по вашему выбору, например, 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());
}
}
Проверить результат
Скомпилируйте класс, используя javac компилятор следующим образом:
C:\jsoup>javac JsoupTester.java
Теперь запустите JsoupTester, чтобы увидеть результат.
C:\jsoup>java JsoupTester
Смотрите результат.
Outer HTML: <a href="www.google.com">Google</a>
Inner HTML: Google
В следующем примере будут продемонстрированы методы, которые могут предоставлять как относительные, так и абсолютные URL-адреса, присутствующие на странице html.
Синтаксис
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"));
где
document - объект документа представляет HTML DOM.
Jsoup - основной класс для подключения к URL-адресу и получения HTML-содержимого.
link - Объект Element представляет собой элемент узла html, представляющий тег привязки.
link.attr("href")- предоставляет значение href, присутствующего в теге привязки. Он может быть относительным или абсолютным.
link.attr("abs:href") - предоставляет абсолютный URL-адрес после сопоставления с базовым URI документа.
link.absUrl("href") - предоставляет абсолютный URL-адрес после сопоставления с базовым URI документа.
Описание
Объект Element представляет собой объект и предоставляет методы для получения как относительных, так и абсолютных URL-адресов, присутствующих на странице html.
пример
Создайте следующую java-программу, используя любой редактор по вашему выбору, например, 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"));
}
}
Проверить результат
Скомпилируйте класс, используя javac компилятор следующим образом:
C:\jsoup>javac JsoupTester.java
Теперь запустите JsoupTester, чтобы увидеть результат.
C:\jsoup>java JsoupTester
Смотрите результат.
Relative Link: index.htm
Absolute Link: https://www.tutorialspoint.com/index.htm
Absolute Link: https://www.tutorialspoint.com/index.htm
В следующем примере будет продемонстрировано использование метода для установки атрибутов элемента dom, массовых обновлений и добавления / удаления методов класса после синтаксического анализа строки HTML в объект Document.
Синтаксис
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
link.attr("href","www.yahoo.com");
link.addClass("header");
link.removeClass("header");
где
document - объект документа представляет HTML DOM.
Jsoup - основной класс для анализа данной строки HTML.
html - HTML-строка.
link - Объект Element представляет собой элемент узла html, представляющий тег привязки.
link.attr() - Метод attr (attribute, value) устанавливает атрибуту элемента соответствующее значение.
link.addClass() - метод addClass (class) добавляет класс в атрибут class.
link.removeClass() - Метод removeClass (class) удаляет класс в атрибуте class.
Описание
Объект Element представляет собой дом-элемент и предоставляет различные методы для получения атрибута дом-элемента.
пример
Создайте следующую java-программу, используя любой редактор по вашему выбору, например, 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());
}
}
Проверить результат
Скомпилируйте класс, используя javac компилятор следующим образом:
C:\jsoup>javac JsoupTester.java
Теперь запустите JsoupTester, чтобы увидеть результат.
C:\jsoup>java JsoupTester
Смотрите результат.
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>
В следующем примере будет продемонстрировано использование метода для установки, добавления или добавления html к элементу dom после синтаксического анализа строки HTML в объект Document.
Синтаксис
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>");
где
document - объект документа представляет HTML DOM.
Jsoup - основной класс для анализа данной строки HTML.
html - HTML-строка.
div - Объект Element представляет собой элемент узла html, представляющий тег привязки.
div.html() - метод html (content) заменяет внешний html элемента соответствующим значением.
div.prepend() - метод prepend (content) добавляет контент перед внешним html.
div.append() - метод append (content) добавляет контент после внешнего html.
Описание
Объект Element представляет собой элемент dom и предоставляет различные методы для установки, добавления или добавления html к элементу dom.
пример
Создайте следующую java-программу, используя любой редактор по вашему выбору, например, 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());
}
}
Проверить результат
Скомпилируйте класс, используя javac компилятор следующим образом:
C:\jsoup>javac JsoupTester.java
Теперь запустите JsoupTester, чтобы увидеть результат.
C:\jsoup>java JsoupTester
Смотрите результат.
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>
В следующем примере будет продемонстрировано использование метода для установки, добавления или добавления текста к элементу dom после синтаксического анализа строки HTML в объект Document.
Синтаксис
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.");
где
document - объект документа представляет HTML DOM.
Jsoup - основной класс для анализа данной строки HTML.
html - HTML-строка.
div - Объект Element представляет собой элемент узла html, представляющий тег привязки.
div.text() - метод text (content) заменяет содержимое элемента соответствующим значением.
div.prepend() - метод prepend (content) добавляет контент перед внешним html.
div.append() - метод append (content) добавляет контент после внешнего html.
Описание
Объект Element представляет собой элемент dom и предоставляет различные методы для установки, добавления или добавления html к элементу dom.
пример
Создайте следующую java-программу, используя любой редактор по вашему выбору, например, 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());
}
}
Проверить результат
Скомпилируйте класс, используя javac компилятор следующим образом:
C:\jsoup>javac JsoupTester.java
Теперь запустите JsoupTester, чтобы увидеть результат.
C:\jsoup>java JsoupTester
Смотрите результат.
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>
В следующем примере будет продемонстрировано предотвращение атак XSS или атак с использованием межсайтовых сценариев.
Синтаксис
String safeHtml = Jsoup.clean(html, Whitelist.basic());
где
Jsoup - основной класс для анализа данной строки HTML.
html - Начальная строка HTML.
safeHtml - Убран HTML.
Whitelist - Объект для предоставления конфигураций по умолчанию для защиты HTML.
clean() - очищает HTML с помощью белого списка.
Описание
Объект Jsoup очищает HTML с помощью конфигураций белого списка.
пример
Создайте следующую java-программу, используя любой редактор по вашему выбору, например, 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);
}
}
Проверить результат
Скомпилируйте класс, используя javac компилятор следующим образом:
C:\jsoup>javac JsoupTester.java
Теперь запустите JsoupTester, чтобы увидеть результат.
C:\jsoup>java JsoupTester
Смотрите результат.
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>