IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Lecture page web


Sujet :

C++

  1. #1
    Membre �clair� Avatar de Trunks
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Par d�faut Lecture page web
    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.

  2. #2
    R�dacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par d�faut
    Citation Envoy� par Trunks Voir le message
    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 ...
    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.

  3. #3
    Membre �clair� Avatar de Trunks
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Par d�faut
    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�...

  4. #4
    Membre tr�s actif Avatar de Argol_Medusa
    Homme Profil pro
    Ing�nieur Radiofr�quences
    Inscrit en
    Ao�t 2005
    Messages
    208
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur Radiofr�quences
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 208
    Par d�faut
    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.

  5. #5
    Membre �clair� Avatar de Trunks
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Par d�faut
    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.

  6. #6
    Membre tr�s actif Avatar de Argol_Medusa
    Homme Profil pro
    Ing�nieur Radiofr�quences
    Inscrit en
    Ao�t 2005
    Messages
    208
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur Radiofr�quences
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 208
    Par d�faut
    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 :

    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;      
    }
     
    //---------------------------------------------------------------------------
    puis tu rajoutes un composant TMemo ( qui est une sorte de notepad ) qui va servir � stocker le code source de page web

    ensuite dans le timer tu colles le code suivant :
    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();
    avec Decode() ta fonction qui va aller chercher l'information que tu veux dans la page web.

    Et le tour est jou� !

    Rajoute quand m�me un TBouton pour pouvoir lancer la lecture de ta page web :


    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);
    }
    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.
    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

  7. #7
    Membre �clair� Avatar de Trunks
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mai 2004
    Messages
    534
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 534
    Par d�faut
    Merci, je vais y jeter un oeil

  8. #8
    R�dacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par d�faut
    Citation Envoy� par Trunks Voir le message
    Merci, je vais y jeter un oeil
    Comme dit pr�c�demment, tu as le m�me niveau d'abstraction avec la plus part des framework (MFC, wxWidgets, Qt).

  9. #9
    Membre exp�riment� Avatar de vikki
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    292
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Mai 2007
    Messages : 292
    Par d�faut
    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

Discussions similaires

  1. [Lazarus] Lecture page web -> ok mais pas pour toutes les pages (?)
    Par ulysse_31 dans le forum Lazarus
    R�ponses: 9
    Dernier message: 26/02/2013, 23h11
  2. lecture cellule excel dans page web
    Par smartbis dans le forum Langage
    R�ponses: 1
    Dernier message: 22/05/2008, 10h07
  3. lecture d'une cellule excel pour affichage dans une page web
    Par smartbis dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 1
    Dernier message: 22/05/2008, 09h33
  4. Ouverture et lecture d'une page web avec openStream()
    Par macinteuch dans le forum Entr�e/Sortie
    R�ponses: 2
    Dernier message: 01/05/2008, 13h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo