Parse html en utilisant C

J’ai besoin de récupérer du contenu d’une page HTML (XHTML valide). Je saisis la page avec curl et la stocke en mémoire.

J’ai utilisé l’idée d’utiliser regex avec la bibliothèque PCRE, mais je n’ai trouvé aucun exemple d’utilisation avec C. Ensuite, je me suis tourné vers les parsingurs syntaxiques HTML. Là encore, la sélection n’est pas bonne. Tout ce que j’ai pu trouver, c’est un module documenté maigre pour libxml appelé HTMLparser.

Y a-t-il des alternatives? Si non, alors des exemples pour ce que j’ai déjà trouvé?

Vous voulez utiliser HTML bien rangé pour faire cela. La page Lib curl contient du code source pour vous permettre de continuer. Documents traversant l’arborescence du dom. Vous n’avez pas besoin d’un parsingur XML. N’échoue pas sur le HTML mal formaté.

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

J’utiliserais libhtmltidy + quel que soit l’parsingur XML comme Expat ou Libxml . Cela dépend de ce que vous recherchez.

Si vous souhaitez parsingr XML à l’aide de C, la meilleure méthode consiste de loin à utiliser la bibliothèque LibXML. La page principale est à http://xmlsoft.org/ . En plus de leurs téléchargements, ils ont des exemples de code explicites qui montrent spécifiquement comment gérer l’ parsing . Je sais pertinemment que vous pouvez obtenir des versions précompilées pour Mac et Windows, il est déjà inclus dans la plupart des dissortingbutions Linux et BSD, et vous pouvez créer à partir des sources si vous le souhaitez.

Google a récemment créé une bibliothèque pure C99 pour parsingr HTML, HTML5 en particulier. Il est facile à utiliser dans tout programme C et à développer activement.

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