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>