HTML Parser для ответа - Java - PullRequest
       29

HTML Parser для ответа - Java

2 голосов
/ 11 января 2012

Я использую HttpClient для доступа к конкретному веб-сайту, и я получаю ответ в форме HTML.Какой парсер или метод я должен использовать парсер HTML и получить то, что я хочу от ответа.Примечание: я использую HttpClient с Java

Ответы [ 3 ]

4 голосов
/ 11 января 2012

Использование jsoup .

jsoup - это библиотека Java для работы с реальным HTML. Это предоставляет очень удобный API для извлечения и обработки данных, используя лучшие из DOM, CSS и jquery-подобных методов.

jsoup реализует спецификацию WHATWG HTML5 и анализирует HTML в тот же DOM, что и в современных браузерах.

  • очистить и проанализировать HTML из URL, файла или строки
  • поиск и извлечение данных с использованием обхода DOM или селекторов CSS
  • манипулировать HTML-элементами, атрибутами и текстом
  • очистить пользовательский контент от безопасного белого списка, чтобы предотвратить атаки XSS
  • выводить приборку в HTML

jsoup предназначен для работы со всеми разновидностями HTML, найденными в дикий; от нетронутого и проверяющего до недействительного супа-метки; Джоуп будет создать разумное дерево разбора.

1 голос
/ 11 января 2012

Я бы дал htmlcleaner попытку.

HTMLCleaner - это библиотека Java, используемая для безопасного анализа и преобразования любого HTML-кода, найденного в сети, в правильно сформированный XML. Он разработан, чтобы быть маленьким, быстрым, гибким и независимым. HtmlCleaner может использоваться в коде Java, как инструмент командной строки или как задача Ant. Результатом разбора является облегченная объектная модель документа, которую можно легко преобразовать в стандарты, такие как DOM или JDom, или различными способами сериализовать в вывод XML (компактный, довольно печатный и т. Д.).

Вы можете использовать XPath с htmlcleaner для получения содержимого в тегах xml / html. Вот хороший
пример Xpath пример

0 голосов
/ 02 августа 2017

Пример кода с помощью jsoup и Java8:

// Imports:
...
import java.nio.charset.StandardCharsets;
import org.apache.commons.io.IOUtils;
...

// Execute the GET request:
...
HttpClient clientGet = HttpClientBuilder.create().build();
HttpGet get = new HttpGet(url);
HttpResponse res = clientGet.execute(get);

// Use jsoup to parse the html response:
// E.g. find all links with reference to myapp:
//  <a href="myapp">HelloWorldApp</a>
Document doc = Jsoup.parse(IOUtils.toString(res.getEntity().getContent(), StandardCharsets.UTF_8));
Elements links = doc.select("a[href~=myapp]");
for (Element link : links)
    String appName = link.html();
...
...