Jsoup - Извлечение и разбор HTML-кода на Java
Jsoup — это книготорговец de Java я>кто обрабатывает код HTML. Это API очень удобен для извлечения и манипулирования данными с помощью лучших методов. DOM, CSS et jquery.
jsoup реализует характеристики HTML5 и анализирует HTML-код в дереве (DOM), как это делают современные браузеры. JSOUP — это проект с открытым исходным кодом, распространяемый под эгидой MIT лицензия. Вы можете найти исходный код в GitHub.
Особенности:
- Разбор HTML-кода из URL-адреса, файла или строки.- Поиск и извлечение данных с помощью DOM-дерева и CSS.
- Манипулирование элементами и текстом HTML.
- Предотвратите XSS-атаки, удалив подписку пользователя.
- Создайте аккуратный HTML-код.
JSoup предназначен для адаптации к различным версиям HTML, он создает анализируемое дерево.
Нажмите, чтобы Скачать jsoup.
Пример:
Извлеките страницу Википедии, преобразуйте ее и разоберите как DOM, а затем выберите в разделе новостей список элементов.
Документ doc = Jsoup.connect("http://fr.wikipedia.org").get();
1 - Разбор документа
Этот код предназначен для анализа document HTML:
String html = " < голова> < Заголовок> Первый титул "
+ "< тела> < Пример кода для документа ";
Document doc = Jsoup.parse(html);
+ "< тела> < Пример кода для документа ";
Document doc = Jsoup.parse(html);
Парсер сделает все возможное, чтобы создать четкий HTML-код из предоставленного вами кода, он обрабатывает:
- Незакрытые теги, например: < Блабла превращается в < Блабла
- Неявные теги, например:
< ТД> стол окружено < Таблица> < тр> < ТД>
- Структура созданного кода соответствует стандартам языка HTML (заголовок, тело и элементы, составляющие страницу).
- Незакрытые теги, например: < Блабла превращается в < Блабла
- Неявные теги, например:
< ТД> стол окружено < Таблица> < тр> < ТД>
- Структура созданного кода соответствует стандартам языка HTML (заголовок, тело и элементы, составляющие страницу).
2- Разобрать документ из String
У нас есть HTML-код в строке Java, и мы хотим разбить его на части, чтобы получить его содержимое, или проверить, хорошо ли он написан, или изменить его. Запись может быть прочитана из файла или по ссылке из web.
Вы должны использовать предопределенный метод Jsoup.parse(String html) или Jsoup.parse(Строка html, Строка URI) если страница взята из Интернета. См. class Jsoup.
String html = " < голова> < Заголовок> Титул "
+ "< тела> < p>html en doc ";
Document doc = Jsoup.parse(html);
+ "< тела> < p>html en doc ";
Document doc = Jsoup.parse(html);
Метод Jsoup.parse(Строка html, Строка URI) Анализирует вводимый HTML-код в новом Документ. Аргумент URI используется для преобразования относительных URL в абсолютные URL-адреса и должен Быть Инициализируется URL-адресом, документ которого был  Выздоровевший. Если это невозможно, вы можете используйте Jsoup.parse(String html).
Строка, передаваемая в качестве параметра, не должна быть нулевой, и выходной документ будет состоять менее чем из head et de body. Если вы obturerez Исключение, когда вы обнаружите, что извлечение дерева не производится. Правильно прочтите documentation для получения дополнительной информации.
Получив документ, вы сможете: Восстановить Данные с методами класса Документы и высшие оценки  Node et Element.
3- Синтаксический анализ тела
У нас есть кусок боди, который мы хотим проанализировать. Код может содержать элементы, которые не являются HTML-кодом, например, такие как comments.
Решение состоит в том, чтобы использовать Jsoup.parseBodyFragment(String html).
String html="< див> < абзац»;
Document doc = Jsoup.parseBodyFragment(html);
Element body = doc.body();
Document doc = Jsoup.parseBodyFragment(html);
Element body = doc.body();
Метод parseBodyFragment создает пустой документ и вставляет разобранный HTML-код в тело. Если вы используете Jsoup.parse(String html), у вас будет То же result, но обрабатывая вывод как фрагмент тела гарантирует, что все предоставленные элементы были проанализированы.
Метод Document.body() извлекает элементы низшего (дочернего) тела, он эквивалентен doc.getElementsByTag("body").
Рекомендуется сохранять осторожность, когда вы Выздоравливать Данные с сайтов, содержащих скрипты злокачественный. Ознакомьтесь с документацией whitelist и с заказом  clean(String html, белый список).
4- Загрузить документ из URL
Для поиска и синтаксического анализа HTML-документа из Интернета и нахождения данных необходимо использовать метод Jsoup.connect(String url).
Document doc = Jsoup.connect("http://siteweb.com/").get();
String title = doc.title();
Метод connect(String url) создает новый объект connexion и get() ищет и анализирует HTML-файл. Если a ошибку, возникшую во время поиска, исключение будет being triggered.
Интерфейс connexion спроектирован в chaining для конкретного ответа :
Document doc = Jsoup.connect("http://siteweb.com")
.data("query", "Java")
.userAgent("Mozilla")
.cookie("auth", "token")
.timeout(3000)
.post();
Этот метод поддерживает только URL-адреса протоколов http и https. Если вам нужно загрузить файл, лучше всего использовать метод parse(File in, String charsetName).
5- Загрузить документ из файла
У нас есть файл, содержащий HTML, и мы хотим загрузить его, затем проанализировать и извлечь данные, чтобы манипулировать ими. Вы должны использовать метод Jsoup.parse(File in, String encoding, String Uri).
File input = новый File("/temp/siteinput.html");
Document doc = Jsoup.parse(siteinput, "UTF-8", "http://siteweb.com/");
Параметр Uri используется для разрешения относительных URL-адресов в документе перед элементом < href> обнаруживаться. Вы можете передать пустой String.
Есть еще один похожий метод parse(File in, String encoding). Метод parse() использует путь к файлу в качестве URI. Этот метод эффективен при работе на локальном сервере.