Я кодирую много синтаксических анализаторов. Вплоть до сих пор я использовал HtmlUnit бездисплейный браузер для автоматизации браузера и парсинга.
Теперь, я хочу разделить обоих задачи.
Поскольку 80% моей работы включают просто парсинг, я хочу использовать синтаксический анализатор светового сигнала HTML, потому что это занимает время в HtmlUnit, чтобы сначала загрузить страницу, затем получить источник и затем проанализировать его.
Я хочу знать, какой синтаксический анализатор HTML является лучшим. Синтаксический анализатор был бы лучше, если это близко к синтаксическому анализатору HtmlUnit.
Править:
Лучшим я хочу, по крайней мере, следующие функции:
Для меня было бы хорошо, если это не чистит грязный HTML-код. Я не должен чистить источник HTML. Мне просто нужен самый легкий способ преодолеть HtmlElements и данные урожая от них.
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 для получения дополнительной информации.
Это новый проект, поэтому любые идеи для улучшения очень приветствуются!
Ну, поскольку 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
Лучшее, что я видел до сих пор, это HTMLCleaner :
HTMLCleaner - это открытый источник HTML-анализатора, написанный в Java. HTML найдено в Интернете, обычно грязно, плохо образовавшись и не подходит для дальнейшей обработки. Для любого серьезного потребления таких документов необходимо сначала очистить беспорядок и привести заказ к тегам, атрибутам и обычным тексту. Для данного HTML-документа HTMLCleaner переносит отдельные элементы и производит хорошо сформированную XML. По умолчанию следует подобные правила, которые используют большинство веб-браузеров, чтобы создать модель объекта документа. Тем не менее, пользователь может предоставить пользовательский тег и правило, установленный для фильтрации тегов и балансировки.
С HTMLCleaner вы можете найти любой элемент, используя XPath.
Для других анализаторов HTML см. Этот вопрос .