Какой Синтаксический анализатор HTML является лучшим? [закрытый]

Я кодирую много синтаксических анализаторов. Вплоть до сих пор я использовал HtmlUnit бездисплейный браузер для автоматизации браузера и парсинга.

Теперь, я хочу разделить обоих задачи.

Поскольку 80% моей работы включают просто парсинг, я хочу использовать синтаксический анализатор светового сигнала HTML, потому что это занимает время в HtmlUnit, чтобы сначала загрузить страницу, затем получить источник и затем проанализировать его.

Я хочу знать, какой синтаксический анализатор HTML является лучшим. Синтаксический анализатор был бы лучше, если это близко к синтаксическому анализатору HtmlUnit.


Править:

Лучшим я хочу, по крайней мере, следующие функции:

  1. Скорость
  2. Простота для определения местоположения любого HtmlElement его "идентификатором" или "именем" или "типом тега".

Для меня было бы хорошо, если это не чистит грязный HTML-код. Я не должен чистить источник HTML. Мне просто нужен самый легкий способ преодолеть HtmlElements и данные урожая от них.

186
задан Tiny 22 May 2014 в 07:17
поделиться

3 ответа

Self Plug: я только что выпустил новый анализатор Java HTML: jsououp . Я упоминаю это здесь, потому что я думаю, что это сделает то, что вы после.

Свой сторонний трюк - синтаксис селектора CSS для поиска элементов, например, E.C.

String html = "<html><head><title>First parse</title></head>"
  + "<body><p>Parsed HTML into a doc.</p></body></html>";
Document doc = Jsoup.parse(html);
Elements links = doc.select("a");
Element head = doc.select("head").first();

See Selector Javadoc для получения дополнительной информации.

Это новый проект, поэтому любые идеи для улучшения очень приветствуются!

386
ответ дан 23 November 2019 в 05:49
поделиться

Ну, поскольку HTML для ссылки находится в вашей БД, вы можете просто вывести HTML к буквальному управлению.

<asp:TemplateField HeaderText="myLink" SortExpression="myLink">
    <ItemTemplate>
        <asp:Literal ID="litHyperLink" runat="server" Text='<%# Bind("myLink", "{0}") %>' />
    </ItemTemplate>
</asp:TemplateField>

Это должно сделать вашу ссылку в виде Raw Text, позволяющий браузеру сделать его как ссылку, которую вы ожидаете.

-121--2129852-

Я предлагаю Парсер Validator.nu , основанный на алгоритме обшивки HTML5. Это анализатор, используемый в Mozilla с 2010-05-03

9
ответ дан 23 November 2019 в 05:49
поделиться

Лучшее, что я видел до сих пор, это HTMLCleaner :

HTMLCleaner - это открытый источник HTML-анализатора, написанный в Java. HTML найдено в Интернете, обычно грязно, плохо образовавшись и не подходит для дальнейшей обработки. Для любого серьезного потребления таких документов необходимо сначала очистить беспорядок и привести заказ к тегам, атрибутам и обычным тексту. Для данного HTML-документа HTMLCleaner переносит отдельные элементы и производит хорошо сформированную XML. По умолчанию следует подобные правила, которые используют большинство веб-браузеров, чтобы создать модель объекта документа. Тем не менее, пользователь может предоставить пользовательский тег и правило, установленный для фильтрации тегов и балансировки.

С HTMLCleaner вы можете найти любой элемент, используя XPath.

Для других анализаторов HTML см. Этот вопрос .

32
ответ дан 23 November 2019 в 05:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: