2012-01-10 3 views
2

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

+0

возможно дубликат из [Какой Html Parser лучше?] (http://stackoverflow.com/questions/2168610/which-html-parser-is-best) –

+1

Я поддержал оба. Разбор html в библиотеке Java просто ужасен; все остальное было бы лучше. – Bill

ответ

4

Использовать jsoup.

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

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

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

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

1

Я бы дал htmlcleaner a.

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

Вы можете использовать XPath с htmlcleaner, чтобы получить содержимое внутри XML/HTML tags.Here хороший
пример Xpath Example

0

Пример кода с 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(); 
...