Parser du HTML

Spack44 Messages postés 4 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 11 juillet 2010 - 5 juil. 2010 à 01:54
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 - 11 juil. 2010 à 23:20
Hello tout le monde,

En faite je suis débutant en C++ et j'ai quelque difficulté a réaliser mon projet
Je souhaiterai récupérer des informations d'une page html
Je pense qu'il faut donc parser le contenue de la page html.
Se qui m'intéresse est situé dans un fieldset de cette facon:
<fieldset>
<th>id1</th>
<th>id2</th>
<th>id3</th>
<th>id4</th>
<th>id5</th>
<th>id6</th>
<th>id7</th>
<th>id8</th>
</fieldset>

J'ai supprimer les chose inutile! ( enfaite il s'agit d'un classement donc les id vont se répeter avec une boucle while sa devrait faire l'affaire)

De la je pense avoir plusieurs option, l'une utilisant les sokets, l'autre utilisant la librairie curl...

Néanmoins c'est le flou totale pour se qui est du code car il faut exécuter une requête puis la parser puis récupérer les informations le tout dans un fichier

Si quelqu'un avait des pistes merci bien^^
A voir également:

7 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
5 juil. 2010 à 09:44
librairie => bibliothèque ("library" est un faux ami et ne se traduit pas par "librairie").

Que ce soit curl ou les sockets, le but est le même, ce n'est pas très compliqué de récupérer une page. Si tu veux juste télécharger la page, les sockets suffisent.

Pour lire des informations xml, tu peux utiliser la bibliothèque libxml2 ou tinyxml.

________________________________________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
Spack44 Messages postés 4 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 11 juillet 2010
5 juil. 2010 à 09:59
Salut,

merci pour ta réponse CptPingu

Et non je ne veut pas juste téléchargé la page je veut effectivement la traiter... enfin les informations et les classer par id

Je ne fait pas bien la différence entre le html et le xml si on pouvait m'éclairer...

J'ai également entendu parler de la bibliothèque tinyxml néanmoins toute la documentation que j'ai trouver était en anglais et j'avoue ne pas être bilingue
Si quelqu'un pouvait me guider parce que je ne vois pas quand traiter les information... une fois stocké dans uine variable creer par une fonction CURL je suppose ^^
Déjà que j'épluche actuellement la documentation sur les fonctions CURL en anglais la...

Oui je prend l'option CURL je pense que c'est le plus adapté a se que je veut faire...
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
5 juil. 2010 à 10:26
Tu peux prendre CURL, mais à mon avis tu ne vas que télécharger la page, et la traiter ensuite. CURL te permet de faire des choses plus avancés, comme imiter un user agent, remplir et poster un formulaire en POST, simuler des cookies, etc...
C'est un peu "overkill" pour ce que tu veux faire. Néanmoins, c'est vrai que c'est simple à utiliser.

Le html est un sous ensemble du xml. Par exemple: "" c'est du html et du xml, alors que "

" c'est du xml, mais pas du html (car la balise pouet n'existe pas).

Quelque soit la méthode que tu prends, la source (en format texte donc) sera stockée dans un "char*", et tu n'auras qu'à la traiter avec libxml2 ou tinyxml.

Si tu n'es pas bilingue, faire traduire la page par Google (dans les outils linguistiques). Apprends l'anglais si tu as un peu de temps libre, parce que toutes informations dans le domaine qu'est l'informatique, est en anglais :p

________________________________________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
Spack44 Messages postés 4 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 11 juillet 2010
5 juil. 2010 à 22:46
Merci et oui l'anglais est essentiel en info je suis a 100% d'accord^^

J'ai installé la biblio libxml2 mais j'ai lu que c'était pour programmer en C surtout non?

Et plus gros problème je n'arrive pas a coder la fonction qui téléchargera la page et rentrer l'information dans une variable char
A chaque fois que je corrige mes erreurs de nouvelle apparaissent...

Si quelqu'un pouvait m'aider merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Spack44 Messages postés 4 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 11 juillet 2010
11 juil. 2010 à 20:26
Un petit up xD

J'ai réaliser la structure du code que je cherche a faire...

CurlFonction{}
/*va télécharger le contenue de la page web désirer et va retourner un char en réponse*/

parser{]
/*le char retourner par la fonction Curl va être parser et la réponse sera un autre char qui sera écrit dans un fichier xls (pouvant être traiter avec excel)*/

main{}
/*réalise une boucle car il y a dans les 400 page a parser... puisqu'il s'agit d'un classement mis a jour tous les matins*/

Je cherche quelqu'un pour m'aider a réaliser ce code car je me suis rendu compte que mes capacité de codage n'était pas assez au niveau...
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
11 juil. 2010 à 23:00
Personne ne codera à ta place. En revanche, tu peux poster ton code, nous te le corrigerons avec plaisir.

________________________________________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée quand un post répond à votre question
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
11 juil. 2010 à 23:20
Salut,

Le html est un sous ensemble du xml.

Ha non. Dans le HTML il est explicitement indiqué que certaines balises ne doivent pas être fermées (meta, img, br, etc), d'autres peuvent éventuellement ne pas l'être (p,etc), ce qui est tout à fait contraire aux principes du XML. Le HTML n'a donc strictement rien à voir avec du XML. EN revanche, le XHTML est du XML, mais il n'est pas aproprié de la traiter de "sous ensemble".

car la balise pouet n'existe pas

C'est un très mauvais argument pour différencier ce qui est du XML de ce qui ne l'est pas, ça n'a tout simplement aucun rapport. Tout fichier XML peut respecter une DTD (et c'est même une très bonne pratique), ce n'est pas parce qu'on lui en impose une que soudainement on ne peu plus l'appeler document XML.


Bref, pour le problème en cours, si jamais on a du HTML et non du XHTML il est impossible d'utiliser une bibliothèque XML. Si par contre c'est du XHTML, c'est tout bon
0
Rejoignez-nous