Разбор HTML с помощью C - PullRequest
15 голосов
/ 07 октября 2009

Мне нужно получить некоторый контент со страницы HTML (допустимый XHTML). Я хватаю страницу с помощью curl и сохраняю ее в памяти.

Я поиграл с идеей использовать regex с библиотекой PCRE, но просто не смог найти никаких примеров, использующих его с C. Затем я перешел к просмотру HTML-парсеров, и опять-таки, выбор не очень хороший. Все, что я мог найти, это скудный документированный модуль для libxml под названием HTMLparser.

Есть ли альтернативы? Если нет, то примеры для чего я нашел уже?

Ответы [ 4 ]

12 голосов
/ 07 октября 2009

Вы хотите использовать HTML Tidy для этого. На странице Lib curl есть некоторый исходный код. Документы, пересекающие дом дерево. Вам не нужен анализатор xml. Не отказывает в плохо отформатированном HTML.

http://curl.haxx.se/libcurl/c/htmltidy.html

7 голосов
/ 07 октября 2009

Я бы использовал libhtmltidy + независимо от синтаксического анализатора XML, например expat или libxml . Зависит от того, что вы ищете.

2 голосов
/ 31 августа 2016

Google недавно создал чистую библиотеку C99 для анализа HTML, особенно HTML5. Его легко использовать в любой программе на Си и он активно развивается.

https://github.com/google/gumbo-parser

2 голосов
/ 07 октября 2009

Если вы хотите проанализировать XML с помощью C, то, безусловно, лучший способ продолжить - использовать библиотеку LibXML. Главная страница находится на http://xmlsoft.org/.. В дополнение к их загрузкам, у них есть явные примеры кода , которые конкретно показывают, как обрабатывать синтаксический анализ . Я точно знаю, что вы можете получить предварительно скомпилированные версии для Mac и Windows, в большинстве дистрибутивов Linux и BSD они уже включены, и вы можете собирать их из исходного кода, если хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...