Java-библиотека для очистки HTML, как браузер - PullRequest
14 голосов
/ 24 мая 2011

Так вот в чем проблема ... Мне нужно создавать чистый HTML из случайных веб-страниц там, в дикой природе. Моя цель - прочитать страницу и передать ее в библиотеку, которая, в свою очередь, вернет мне отлично сформированный HTML.

Звучит не так жестко, верно? В конце концов, каждый браузер на рынке эффективно справляется с проблемой искаженного HTML и превращает его во что-то рендеринг практически с каждой загрузкой страницы. У каждого есть свой немного специфический алгоритм для очистки содержимого (хм ... для HTML <5, то есть), но они, как правило, делают очень хорошую работу по захвату того, что я хотел бы назвать намерением автора. Итак, почему я не могу найти хорошую библиотеку Java для этой самой задачи? </p>

Стоит упомянуть, что мне совсем не интересно разбирать HTML как XML. Я обнаружил, что такие библиотеки, как NekoHTML, TagSoup, HtmlCleaner и JTidy (и многие другие), в большей степени ориентированы на решение проблемы преобразования HTML в действительный XML, и при этом они упускают из виду, как плохо форматированный документ должен быть реструктурирован. С неприятным HTML они часто не отражают намерения автора и выкладывают документы, которые отображаются совершенно иначе, чем в оригинальном источнике. И для этого проекта крайне важно, чтобы оба документа отображались одинаково.

Мне очень нравится Иерихон HTML, но он не кажется идеальным кандидатом на эту работу ... по крайней мере, без особых усилий с моей стороны. Кроме того, нативные зависимости не нужны, поэтому парсер mozilla отсутствует.

Может ли кто-нибудь помочь мне в поиске идеального анализатора HTML? Заранее спасибо!

Ответы [ 3 ]

6 голосов
/ 24 мая 2011
1 голос
/ 24 мая 2011

Я использовал HTML Tidy в прошлом.

0 голосов
/ 24 мая 2011
...