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 :

Comment récupérer la valeur d'une page WEB ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2011
    Messages : 42
    Par défaut Comment récupérer la valeur d'une page WEB ?
    Bonjour tout le monde, je suis en train de faire un petit programme "test" qui consiste à prendre la valeur d'une page WEB, en quelques sortes j'aimerais pouvoir stocker dans une variable un nombre affiché sur un site WEB...
    Je ne sais pas si je suis très clair.
    J'ai regardé les différents tuto sur les Socket et le réseau mais je n'ai rien trouvé.
    Voilà, si quelqu'un peu m'aider, que ça soit juste me donner un tuto en français de préférence ^^

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 482
    Par défaut
    Bonjour,

    Citation Envoyé par jurams Voir le message
    Bonjour tout le monde, je suis en train de faire un petit programme "test" qui consiste à prendre la valeur d'une page WEB, en quelques sortes j'aimerais pouvoir stocker dans une variable un nombre affiché sur un site WEB...
    Je ne sais pas si je suis très clair.
    Est-ce que tu cherches à t'exercer en langage C en particulier ou à récupérer cette valeur quelque soit la manière ? Car dans le second cas, le C n'est pas ce qu'il y a de plus facile pour cela. Ensuite, est-ce que tu récupères ta page par un moyen externe ou est-ce également ton programme qui doit le faire ?

    Si tu veux faire en sorte que ce soit ton programme C qui mène toute l'opération de A à Z, il faut effectivement :

    1. Commencer par ouvrir une connexion vers le serveur web de ton choix. Ça se fait avec les sockets. Regarde les articles en tête du forum « C → Réseau » ;
    2. Envoyer une requête HTTP pour la recevoir. Il faut donc gérer un minimum le protocole HTTP pour ce faire. Cela dit il te suffit d'émettre "GET /aubonendroit/mapage.html HTTP/1.0\n\n" pour la recevoir ;
    3. Enregistrer dans un buffer ce qui t'est renvoyé par le serveur, jusqu'à ce qu'il referme la connexion (on passe sur les statuts keep-alive et autres) ;
    4. De là, utiliser une expression régulière pour retrouver le motif qui t'intéresse et l'isoler ;
    5. Utiliser strtol() pour convertir la valeur représentée par la chaîne en entier numérique natif.


    Si tu veux t'épargner les points 1, 2 et 3, tu peux jeter un œil à la libCurl.

    Bon courage.

  3. #3
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2011
    Messages : 42
    Par défaut
    Merci pour cette réponse bien détaillé.
    Est-ce que tu cherches à t'exercer en langage C en particulier ou à récupérer cette valeur quelque soit la manière ? Car dans le second cas, le C n'est pas ce qu'il y a de plus facile pour cela.
    Oui je cherche vraiment à m'exercer en C, donc je préfaire développer en entier ce programme.

    Ensuite, est-ce que tu récupères ta page par un moyen externe ou est-ce également ton programme qui doit le faire ?
    "Moyen externe" c'est à dire ?

    Sinon je suis justement en train de lire les premiers articles du forum Réseaux, après avoir fini je vais donc essayer de suivre les étapes que tu m'as écrites.
    Je donnerais des nouvelles de mon avancement surtout si j'ai des erreurs dans mon code.

  4. #4
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2011
    Messages : 42
    Par défaut
    Depuis que j'ai fini de lire les Tuto sur les Réseaux, je me suis lancé mais j'ai un problème : mon compilateur me signale plusieurs erreurs...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ||=== Reseaux, Debug ===|
    obj\Debug\main.o||In function `main':|
    undefined reference to `WSAStartup@8'|
    undefined reference to `socket@12'|
    undefined reference to `inet_addr@4'|
    (ect ect ect)
    ||=== Build finished: 10 errors, 0 warnings ===|
    Quelqu'un serait-il d'où viens toutes ces erreurs ?
    J'ai bien le fichier winsock2.h, j'utilise code::block.

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Il faut aller dans Project / Build Options / Linker Setting et ajouter la fichier .a qui va bien :
    C:\Program Files\CodeBlocks\MinGW\lib\libws2_32.a
    ou
    C:\Program Files\CodeBlocks\MinGW\lib\libwsock32.a
    (chemin à adapter bien sûr)

    Avoir le fichier .h dans son code permet à la compilation de fonctionner, mais il faut indiquer au linker le fichier contenant le corps des fonctions.

  6. #6
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2011
    Messages : 42
    Par défaut
    Merci encore, sinon j'ai avancé dans mon code et je ne sais pas vraiment comment me connecter à une page web pour avoir son contenue dans un fichier...

    J'imaginais qu'il fallait faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                server.sin_family       = AF_INET;
                server.sin_addr.s_addr  = inet_addr("http://www.developpez.net");
                server.sin_port         = htons(80);
                memset(&server.sin_zero, '\0', sizeof(server.sin_zero));
    Mais ça n'a pas l'air de fonctionner

Discussions similaires

  1. Comment récupérer l'affichage d'une page WEB
    Par chould dans le forum VB.NET
    Réponses: 5
    Dernier message: 18/05/2013, 00h56
  2. Récupérer des valeurs dans une page WEB
    Par megamario dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/09/2011, 14h05
  3. récupérer des valeurs sur une page web
    Par houwa dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/07/2008, 14h27
  4. Réponses: 7
    Dernier message: 14/04/2007, 17h25

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