Bonjour,
J'aimerais savoir comment manipuler une page web, par exemple me connecter � une url et r�cup�rer le code source, valider un formulaire ...
Je suppose que je peux m'appuyer sur une classe de la librairie boost.
Bonjour,
J'aimerais savoir comment manipuler une page web, par exemple me connecter � une url et r�cup�rer le code source, valider un formulaire ...
Je suppose que je peux m'appuyer sur une classe de la librairie boost.
Salut,
Peux-tu �tre un peu plus pr�cis sur l'aspect 'manipuler'.
Demander une ressource URL, �a demande en g�n�ral de construire une requ�te HTTP, de l'envoyer � un serveur et d'examiner sa r�ponse. Je ne crois pas qu'il y ait un tel module dans Boost (mais je peux me tromper). Boost.Asio s'arr�te au niveau TCP il me semble. Tu trouves ce niveau d'abstraction directement dans les framework (MFC, Qt, wxWidgets). As-tu fais une recherche google pour voir s'il existait des biblioth�ques en C++ ?
En revanche, pour parser le contenu HTML d'une page, l� c'est plus d�licat. A nouveau, les framework ont souvent quelques classes d�di�es.
Ressources propos�es par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Je pense que la librairie libcurl me permet de faire �a => http://fr.wikipedia.org/wiki/CURL
Je vais jeter un oeil de ce c�t�...
Bonjour,
Il existe plusieurs m�thodes pour le faire avec le c++ Builder de Borland sans librairies externes.
Si tu veux r�cup�rer des informations et/ou naviguer de mani�re automatique (ou non) sur une page tu peux utiliser par exemple le composant TcppWebBrowser de la VCL.
Apr�s tu peux aussi le faire non pas par programmation mais en utilisant un plugins firefox comme Imacros.
Si le but est seulement de r�cup�rer des informations, c'est le plus simple � mon avis.
En fait je veux faire un programme qui surveille des annonces par exemple dans leboncoin ou ebay. Le programme se connectera tous les X temps sur le site et parsera la page selon les crit�res que j'ai choisi.
Par exemple, si un iphone est en vente sur leboncoin pour moins de 400�, alors le programme m'enverra un mail pour me pr�venir, d'o� l'utilit� de me connecter sur une page web.
Il existe peut-etre d'autres outils performants pour faire ce que tu veux faire, mais de ce que je connais le plus rapide serait le borland C++ Builder
Tu as juste � faire un fichier -> nouveau projet, tu poses le composant TCppWebBrowser dessus ainsi qu'un TTimer et tu mets dans l'�v�nement "OnDownloadcomplete" de ce composant le code suivant :
puis tu rajoutes un composant TMemo ( qui est une sorte de notepad ) qui va servir � stocker le code source de page web
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 void __fastcall TForm1::WebDownloadComplete(TObject *Sender) { Timer1->Enabled = true; } //---------------------------------------------------------------------------
ensuite dans le timer tu colles le code suivant :
avec Decode() ta fonction qui va aller chercher l'information que tu veux dans la page web.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 void __fastcall TForm1::Timer1Timer(TObject *Sender) { Timer1->Enabled=false; Memo1->Clear(); AnsiString aContenuText = ""; AnsiString aContenuHTML = ""; Variant vDocument = Web->ControlInterface->Document; if (((IDispatch *)vDocument) != NULL) { Variant vBody = vDocument.OlePropertyGet("Body"); Variant vContenuText = vBody.OlePropertyGet("InnerText"); Variant vContenuHTML = vBody.OlePropertyGet("InnerHTML"); aContenuText = vContenuText; aContenuHTML = vContenuHTML; Memo1->Lines->Add(vContenuHTML); // mets aContenuText à la place de vContenuHTML si tu veux la page en version texte et non le code source } Decode();
Et le tour est jou� !
Rajoute quand m�me un TBouton pour pouvoir lancer la lecture de ta page web :
Ensuite pour envoyer un e-mail tu peux utiliser le composant NMPOP3 qui est encore plus facile � utiliser que le TCppWebBrower, un simple F1 sur le composant et tu as un exemple tout fait il me semble.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 void __fastcall TForm1::Button1Click(TObject *Sender) { WideString Adresse_Web = "www.developpez.com"; Web->Navigate(Adresse_Web); }
Je l'avais fait � l'�poque mais je n'ai pas le code source sous les yeux dsl ^^
En tout cas m�me si tu connais pas et avec ce que je t'ai donn�, en une demi-journ�e ou une journ�e c'est torch� (lecture web + mail)
bonne chance![]()
Ressources propos�es par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Hello,
Pour les fonctionnalit�s que tu souhaites, je me demande si le c++ est le langage le plus appropri�... Tu risque de te "trimballer" des libs assez volumineuses (genre wxWidget) pour n'en utiliser au final qu'1%. Certains langages plus "haut niveau" t'offre toutes ces fonctionnalit�s de base et �a prend g�n�ralement pas plus de quelques lignes (je pense notamment a python).
ps : ne pas tenir compte du post si t'as pas le choix du langage![]()
Partager