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

Bibliothèques Discussion :

[libcurl] Recuperer une page web


Sujet :

Bibliothèques

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Février 2006
    Messages : 7
    Points : 9
    Points
    9
    Par défaut [libcurl] Recuperer une page web
    Bonjour

    je souhaite recuperer le contenu d'une page web
    directement dans un buffer avec libcurl.

    Dois je downloader obligatoirement la page web d'abord dans un fichier ?

    Merci.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Je relance ce topic, je cherche aussi à récupérer le code source d'une page HTML quelconque sur le net pour ensuite réaliser un travail extérieur dessus (Surtout du parsing), grâce à la librairie Libcurl.

    Est-ce possible, sinon y'a t'il d'autre moyens ?

    A+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bon, après des heures de recherches, j'ai enfin trouver le bout de code qui permet de récupérer le code source d'une page web avec Libcurl.
    Ceci ce fait avec la fonction curl_easy_perform, le seul problème, c'est que cette fonction me retourne le code source de la page web dans ma variable et l'affiche automatiquement sur mon Terminale, j'ai tenté de faire un printf, mais impossible car apparement sa n'est pas un char* mais un type propre à une structure de la lib. Quelqu'un peux t-il m'éclaircir la dessus ?

    A+

    Voici le code source :
    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
    int main(void)
    {
        CURL *curl;
        CURLcode code;
     
        curl = curl_easy_init();
        if(curl)
            {
                curl_easy_setopt(curl, CURLOPT_URL, "http://www.developpez.net");
                code = curl_easy_perform(curl);
                curl_easy_cleanup(curl);
            }
        system("pause");
        return 0;
    }
    Comme déjà dit, si on essaye un printf de la variable code (là ou se tient le code source la page web), on obtient cette erreur de compilation :
    16 C:\Users\Documents\Test_LibCurl\main.cpp cannot convert `CURLcode' to `const char*' for argument `1' to `int printf(const char*, ...)'

    Je reviens sur ce post pour dire qu'en réalité ce code ne récupère pas vraiment le code source, enfaite c'est un transfert du code source de la page web, sa reste visuel au niveau du terminal donc pas moyen de travailler dessus.
    Je cherche encore...

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Comme Libcurl ne propose qu'un simple transfert du code source de la page Internet vers votre terminale, j'ai codé une fonction, qui va récupérer la page html et rapatrier cette page comme un fichier HTML sur votre disque dur, ensuite un ptit open + read et le tour est jouer.
    Voici le code de ma fonction, je suis ouvert à toutes remarques :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    #include <unistd.h>
    #include <sys/types.h>
    #include <stdio.h>
    #include <fcntl.h>
    #include <stdlib.h>
    #include <sys/stat.h>
    #include <curl/curl.h>
     
    int      main(void)
    {
             int fd;
             char buf[10000];
     
             CURL *handle = curl_easy_init(); 
    	 curl_easy_setopt(handle, CURLOPT_URL, "http://annonces.ebay.fr/");
    	 FILE * fp = fopen("test.html", "w"); 
    	 curl_easy_setopt(handle,  CURLOPT_WRITEDATA, fp); 
    	 curl_easy_setopt(handle,  CURLOPT_WRITEFUNCTION, fwrite);
    	 curl_easy_perform(handle);
    	 fclose(fp);
    	 curl_easy_cleanup(handle);
             fd = open("test.html", O_RDONLY);
             if (fd == -1)
                 {
                     printf("Cannot open HTML file !\n");
                     exit(0);
                 }
             read(fd, buf, 10000);
             printf(buf);
             system("pause");
             return 0;
    }
    Le buf en tableau de char est provisoire (je test), il va falloir trouver un moyen pour récupérer la taille du fichier uploader et malloc une chaîne de caractère en fonction de la taille du fichier, j'ai pensé à stat.
    Mais au finale on à bien ce que l'on voulais : Récupérer le code source d'une page web pour travailler dessus.

Discussions similaires

  1. [JSP][WEB] recuperer le contenu d'une page web
    Par ypikahe dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 14/03/2008, 10h10
  2. recuperer une page web
    Par openWorld dans le forum Langage
    Réponses: 5
    Dernier message: 19/05/2007, 11h11
  3. recuperer une page web
    Par Liiscar dans le forum Documents
    Réponses: 1
    Dernier message: 10/01/2007, 18h29
  4. Recuperer une page Web sous Windows
    Par tmanta7 dans le forum Réseau
    Réponses: 7
    Dernier message: 22/05/2006, 23h21
  5. recuperer le contenu d'une page web
    Par firejocker dans le forum MFC
    Réponses: 26
    Dernier message: 11/10/2005, 17h27

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