HTML/XML Parser для Java

Какие HTML-парсеры имеют следующие функции:

  • Быстро
  • Поточно-
  • Надежный и без ошибок
  • Разбирает HTML и XML
  • Обрабатывает ошибочный HTML
  • Имеет реализацию DOM
  • Поддерживает HTML4, JavaScript и CSS-теги
  • Относительно простой объектно-ориентированный API

Какой парсер вы считаете лучше?

Спасибо.

7 ответов

Решение

Apache Tika - лучший выбор. Apache недавно извлек много подпроектов из существующих проектов и сделал их общедоступными. Тика является одним из них, который ранее был компонентом Apache Lucene. Благодаря поддержке и репутации Apache, а также широко используемому родительскому проекту Lucene, это должен быть очень хороший выбор. Кроме того, это с открытым исходным кодом.

Краткое введение с веб-сайта Apache Tika:

Набор инструментов Apache Tika™ обнаруживает и извлекает метаданные и структурированный текстовый контент из различных документов с использованием существующих библиотек синтаксического анализатора.

И поддерживаемые форматы:

HyperText Markup Language
XML and derived formats
Microsoft Office document formats
OpenDocument Format
Portable Document Format
Electronic Publication Format
Rich Text Format
Compression and packaging formats
Text formats
Audio formats
Image formats
Video formats
Java class files and archives
The mbox format

Проверьте веб-урожай. Это и библиотека, которую вы можете использовать, и инструмент извлечения данных, который, как мне кажется, именно то, что вы хотите сделать. Вы создаете файлы сценариев XML, чтобы проинструктировать скребок, как извлечь нужную информацию и откуда. Предоставленный графический интерфейс очень полезен для быстрого тестирования сценариев.

Посетите страницу с примерами проекта, чтобы узнать, подходит ли она для того, что вы пытаетесь сделать.

Самыми известными являются NekoHTML и JTidy.

NekoHTML основан на Xerces и предоставляет простой адаптируемый SAXParser, который реализует интерфейс XMLReader JavaSE.

JTidy более намерен отформатировать ваш HTML-код во что-то XML-допустимое, но все еще очень полезен в качестве анализатора XML, создавая дерево DOM при необходимости.

Вы могли бы взглянуть на этот список для других альтернатив.

Другим выбором может быть использование hpricot через jRuby.

HTML-парсер Validator.nu, определенно. Это реализация алгоритма разбора HTML5, и Gecko находится в процессе замены своего собственного анализатора HTML переводом этого C++.

Вы, вероятно, хотите посмотреть, как работает Mozilla в режиме без головы. Вот ссылка для начала, я уверен, что вы можете использовать Google, чтобы узнать больше информации.

Я думаю, что HTML Cleaner - это то, что вы ищете. Посмотрите его объявление на TheServerSide, чтобы увидеть, как оно сравнивается с JTidy, TagSoup, NekoHtml.

Что ж:

в java не так много хороших анализаторов HTML, как вам нужно, но есть несколько альтернатив: http://java-source.net/open-source/html-parsers

Очень немногие из них поддерживают Javascript. На самом деле, я думаю, что вам придется делать эту часть самостоятельно, используя Rhino ( http://www.mozilla.org/rhino/).

Другие вопросы по тегам