Pregunta Jsoup como analizador html para C ++


He estado escribiendo algunos códigos para obtener algunos datos de algunas páginas en Java y Jsoup estaba en las mejores bibliotecas para trabajar. Pero, desafortunadamente, tengo que portar todo el código a C / C ++. Pero no puedo encontrar ningún analizador html decente para usar en c ++. ¿Hay alguna biblioteca Jsoup como C ++ o cómo se pueden lograr resultados similares?

[Actualmente estoy usando Curl para obtener la fuente de las páginas y deambular por Internet para encontrar un analizador html]


16
2017-07-29 10:29


origen


Respuestas:


Desafortunadamente, supongo que no hay un analizador como Jsoup para C ++ ...

Además de las bibliotecas que ya se mencionaron aquí, hay una buena descripción general sobre el analizador C ++ (algunos C también) aquí: Bibliotecas de analizadores XML C o C ++ gratuitas

Para el análisis que utilicé TinyXML-2 para el análisis DOM (Html-); es una biblioteca muy pequeña (solo 2 archivos) que se ejecuta en la mayoría de los sistemas operativos (incluso los que no son de escritorio).

LibXml

  • el analizador de empujar y tirar (DOM, SAX)
  • Validación
  • Soporte XPath y XPointer
  • Plataforma cruzada / buena documentación

Apache Xerxces

  • el analizador de empujar y tirar (DOM, SAX)
  • Validación
  • Sin soporte XPath (¿pero un paquete para esto?)
  • Plataforma cruzada / buena documentación

Si está en la CLI de C ++, consulte NSoup - un puerto Jsoup para .NET.

Algo mas:

¿Tal vez pueda combinar un Modelo DOM / Analizador y un selector CSS juntos?


11
2017-08-07 13:41



Si está familiarizado con Qt Framework, la forma más conveniente es usar QWebElement (Referencia aquí)

De lo contrario, (como sugiere otra publicación) usando Ordenado convertir HTML a un XML válido y luego usar un analizador XML como libxml ++ es una buena opción Puede encontrar un código de muestra que muestra estos dos pasos aquí.


8
2017-08-04 20:09



Chromium tiene una fuente abierta analizador. También el Google gumbo-parser se ve bien.


5
2017-12-27 00:24



Puedes usar xerces2 como analizador DOM.

O usar HTML Tidy para limpiar el HTML y convertirlo a XHTML luego analizar el XML con pugixml o un analizador XML similar. Y dado que pugixml es un analizador no validador, también podría funcionar en el código HTML sin necesidad de ejecutar HTML Tidy primero.


1
2017-07-31 18:41



Si no te importa llamar a Python desde C ++, podrías usar Hermosa sopa. ¡Al menos el nombre es correcto!

En serio, es un analizador de HTML agradable y sensato. No he intentado llamarlo desde C ++, aunque debería ser directo.


0
2017-08-07 15:36