Gumbo - это реализвация алгоритмов парсинга HTML5, разработанный на чистом C99, и не требующая каких-либо дополнительных библиотек. Она создана для того, чтобы сторонние разработчики могли создавать свои приложения и утилиты, такие как валидаторы, инструменты рефакторинга и анализа кода.
Основные достоинства:
- Полное соответствие со спецификацией HTML5.
- Устойчивость к неправильным входным данным.
- Простые API, которые могут быть вызваны из других языков.
- Проходит все тесты html5lib-0.95 tests.
- Проверен на более чем двух с половиной миллиардов страниц из индекса гугла.
Недостатки:
- Не высокая производительность.
- Поддерживается только кодировка UTF-8.
- Нет поддержки C89.
Будет добавлено в будущем:
- Поддержка последних изменений спецификации HTML5.
- Поддержка парсина только фрагмента кода.
- Полная поддержка вывода ошибок парсинга.
- Привязка к другим языкам.
Для использования парсера необходимо подключить gumbo.h
Стоит заметить, что данный парсер так же легко использовать в Python.