Ответ 1
JSoup Я бы сказал
См. также
Итак, вот задача... Мне нужно создать чистый HTML-код из случайных веб-страниц там, в дикой природе. Моя цель - прочитать на странице и передать ее в библиотеку, которая, в свою очередь, вернет мне отлично сформированный HTML.
Не звучит так жестко, не так ли? В конце концов, каждый браузер на рынке эффективно справляется с проблемой искаженного HTML и превращает его в что-то визуализируемое с почти каждой загрузкой страницы. Каждый из них имеет свой собственный немного специфический алгоритм для очистки содержимого (ах... для HTML < 5, который есть), но они, как правило, делают очень хорошую работу по захвату того, что мне нравится называть намерением автора. Итак, почему я не могу найти хорошую библиотеку java для этой самой задачи?
Следует отметить, что меня совсем не интересует разбор HTML как XML. Я обнаружил, что библиотеки, такие как NekoHTML, TagSoup, HtmlCleaner и JTidy (чтобы назвать их несколько), больше ориентированы на решение проблемы конвертирования в HTML в корректный XML, и в процессе они теряют из виду, форматированный документ должен быть реструктурирован. С неприятным HTML они часто не фиксируют намерение автора и выплевывают документы, которые выглядят совершенно иначе, чем исходный источник. И для этого проекта крайне важно, чтобы оба документа отображались одинаково.
Я очень люблю HTML-код Jericho, но он не кажется идеальным кандидатом на эту работу... по крайней мере, не без особых усилий с моей стороны. Кроме того, родственные зависимости не идут, поэтому анализатор mozilla отсутствует.
Может ли кто-нибудь помочь мне в поиске идеального парсера HTML? Спасибо заранее!
JSoup Я бы сказал
См. также
Я использовал HTML Tidy в прошлом.