Tester l'existence d'un texte dans un site en C++

Fermé
Moberateur Messages postés 1 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 6 octobre 2012 - 6 oct. 2012 à 09:27
Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 - 6 oct. 2012 à 13:55
Bonjour!

Je reprend un projet en c++ qui fonctionne, et voudrais lui faire tester l'existence d'un texte dans un site (dans une page ex: http://www.site.x/page.php) avant son exécution.
Je ne sais pas vraiment comment m'y prendre alors si vous pouvez me mettre sur la voie je vous en serez reconnaissant.
Merci



A voir également:

1 réponse

Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 54
6 oct. 2012 à 13:55
Bonjour,
C'est faisable assez simplement en utilisant la libcurl https://curl.haxx.se/download.html je ne sais pas si c'est compatible avec le c++ sans quoi il y a curlpp https://code.google.com/archive/p/curlpp/downloads pas testé

Petit code en C qui sortira un "meuuuuh" à chaque fois qu'il trouvera la chaîne recherchée dans une page web :
#include <stdio.h>
#include <curl/curl.h>

size_t function(char *ptr,size_t size,size_t n,void *userdata){
    int i,j;
    char *cherche_mot=(char*)userdata;
    for(i=0;i<size*n;i++){
        for(j=0;cherche_mot[j]&&cherche_mot[j]==ptr[i+j];j++);
        if(cherche_mot[j]=='\0') printf("meuuuuh\n");
    }
    return n;
}

int main(void){
    char *url="https://www.commentcamarche.net/";
    char *userdata="Actualit& eacute;"; /* chaîne recherchée : "Actualités" supprimez l'espace que j'ai mis entre le & et e */
    CURL *curl;
    CURLcode res;
    curl=curl_easy_init();
    if(curl){
        curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,&function);
        curl_easy_setopt(curl,CURLOPT_WRITEDATA,userdata);
        curl_easy_setopt(curl,CURLOPT_URL,url);
        res=curl_easy_perform(curl);

        if(res==0) fprintf(stderr,"\nok\n");
        else fprintf(stderr,"\nerreur\n");

        curl_easy_cleanup(curl);
    }
    return 0;
}
0