récuperer infos d'une page web (parsing) - C++ - Programmation
Marsh Posté le 03-09-2007 à 19:07:57
Salut,
libcurl devrait pouvoir t'aider? Je ne connais pas de lib qui soit C++ et uniquement orienté http/réseau par contre, mais ça peut valoir le coup de fouiller.
Marsh Posté le 04-09-2007 à 15:17:22
S'il faut juste lire un fichier distant via HTTP avec un programme Win32, alors vous pouvez vous inspirer du code suivant (si vous utilisez C++/CLI, alors je crois que la solution peut être beaucoup plus simple avec les fonctions de .NET Framework) :
Code :
|
Pour rendre tout ça compatible Unicode, il suffit de changer quelques lignes.
Marsh Posté le 04-09-2007 à 17:23:14
c'est exactement ce que je cherchais, merci de vos réponses. Je teste tout cela tout de suite
Marsh Posté le 05-09-2007 à 11:54:49
Pour info, sous linux :
Code :
|
Marsh Posté le 16-06-2008 à 19:49:53
Bonjour, quelqu'un pourrait m'expliquer ce code SVP ?
personellement je cherche a récupérer le code source de plusieurs pages html faites pareil pour les traiter et en copier a chaque fois le meme type d'information (un nom et un lien sur une photo en fait) dans un fichier texte
une piste pour moi ? sachant que je suis novice en C
merci
Marsh Posté le 16-06-2008 à 20:44:18
je crois avoir trouvé une piste, reste a comprendre comment ca marche justement
http://www.commentcamarche.net/faq [...] b-distante
Marsh Posté le 16-06-2008 à 21:03:42
Et bien, la fonction GetHTTPFile() récupére le contenu d'une page specifique dans une chaine de caractères buffer.
Pour extraire les informations à partir de plusieurs pages, tu peux je pense faire appel à GetHTTPFile() plusieurs fois de suite, en variant l'URL passé en paramètres. Par contre, l'appel suivant va effacer le contenu de buffer, donc il faut extraire les informations necessaires juste après chaque appel.
Après, coté extraction des infos à partir de la chaine de caractères, à toi de voir comment faire selon tes besoins.
Marsh Posté le 17-06-2008 à 00:02:49
yep j'vais tester ca merci beaucoup, au besoin je reviens t'facon
Marsh Posté le 17-06-2008 à 00:18:25
alors voila, j'ai testé quand meme avec ce que j'avais trouvé (lien dans message précédent)
Code :
|
ca compile sous devcpp mais ca m'affiche a l'execution un message d'erreur "la memoire ne peut pas etre "written" " saurais-tu d'ou ca vient ?
Marsh Posté le 17-06-2008 à 00:21:00
Pour quelle ligne s'affiche l'erreur ? Ca peut éviter d'avoir à étudier tout le code entier...
Marsh Posté le 17-06-2008 à 00:24:10
En tout cas, déjà, lorsque je vois :
Code :
|
...
Regarde du coté des tutoriels sur la manipulation des chaines de caractère en C. Car ça ne se fait pas comme avec les variables, donc tu ne peux pas faire juste un char* x = quelque_chose.
Marsh Posté le 17-06-2008 à 00:25:51
e fait j'avais pensé le faire avec des string, mais ca déconne ... j'ai l'impression de mélanger C et C++ dans ce truc et je n'sais pas qui est ou en fait
Marsh Posté le 17-06-2008 à 00:26:01
Quelques pistes : http://www.cplusplus.com/reference [...] trcat.html
Marsh Posté le 17-06-2008 à 00:30:24
netcorsair a écrit : e fait j'avais pensé le faire avec des string, mais ca déconne ... j'ai l'impression de mélanger C et C++ dans ce truc et je n'sais pas qui est ou en fait |
Non mais fais le avec char*. Mais ne le fais pas n'importe comment. Tout ce qui concerne les chaines de caractères peut très bien être fait sur des char* dans la mesure où string.h fournit une large gamme de fonctions permettant la manipulation des chaines de caractères. J'ai jamais utilisé les string en C/C++, et jamais j'en ai eu vraiment besoin, donc...
Marsh Posté le 17-06-2008 à 00:33:17
ok ok, donc deja une erreur de plus j'avais mi #include <string> et pas <string.h>
de plus j'ai compri grace a ton lien mon erreur avec les affectation dans des char*
ca donne ca ?
Code :
|
PS: l'erreur est toujours la: ce n'est pas une erreur a la compilation, mais a l'execution: je lance mon truc en mode console, je vois la console apparaitre, tout de suite apres y'a une msgbox avec l'erreur
Marsh Posté le 17-06-2008 à 00:36:28
Ah bah j'imagine, oui.
Mais... je demande à nouveau, à quelle ligne c'est, l'erreur ?
Marsh Posté le 17-06-2008 à 00:38:15
ReplyMarsh Posté le 17-06-2008 à 00:53:44
netcorsair a écrit : j'sais pas, il se compile sans erreurs comme je te dis ... |
Ben y a pas moyen de faire le débogage ?
Mais sinon ben à voir le début du code, urlarp est utilisé au sein de strcpy, ligne 11, alors qu'il n'a été défini nulle part. Donc un petit urlarp = (char*)malloc(...); sera le bienvenu.
Sinon ben je te conseille d'aller lire quelques tutoriels/manuels du coté de la manipulation des chaines de caractères en C ; car bon, ce n'est pas une très bonne idée de faire quelque chose sans trop savoir ce qu'on fait exactement.
Marsh Posté le 17-06-2008 à 00:54:42
ouai j'pense que c'est ce que je vais faire ... ca s'voit que j'galere lol
Marsh Posté le 17-06-2008 à 01:01:03
et apres debug, aparemment il y a erreur de segmentation ligne 26
Code :
|
Marsh Posté le 17-06-2008 à 01:24:46
Ah bah là, j'peux pas t'aider, vu que je ne connais pas du tout la libcurl. Desolé.
Marsh Posté le 17-06-2008 à 02:43:52
ok, merci de l'aide déja c'est beaucoup j'vais chercher pour libcurl
Marsh Posté le 31-08-2007 à 20:28:54
Salut tous,
je cherche a créer un petit programme qui pourrait automatiquement me parser une page html pour récuperer des infos et remplir une base mysql.
Il faudrait que je charge tout le texte d'une page web (distante) dans une variable ; apres le parsing est facile.
Quel type de variable dois je utiliser? Comment acceder a la page web et stocker ensuite le code source dans cette variable?
Je travaille en c++ sur vc2005
Merci de votre aide