HTML/XML Parser для Java

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

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

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

Спасибо.

Ответ 1

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

Краткое введение с веб-сайта 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

Ответ 2

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

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

Ответ 3

Наиболее известные NekoHTML и JTidy.

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

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

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

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

Ответ 4

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

Ответ 5

Ну:

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

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

Ответ 6

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