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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
#include <stdlib.h>
#include <curl/curl.h>
#include <stdio.h>
#include <string.h>
/*
FONCTION QUI ECRIS LE CODE SOURCE DE LA PAGE WEB DANS LA FENÊTRE DE COMMANDE
*/
size_t ecrire(void *ptr, size_t size, size_t nmemb, void *stream)
{
sprintf(stream, "%s%s", stream, ptr);
return nmemb;
}
/*
FONCTION QUI TELECHARGE LE CODE SOURCE DE LA PAGE WEB
*/
void dlwebsite(char *url, char *fichier)
{
CURL *session;
CURLcode res;
fichier[500000] = '\0';
session = curl_easy_init();
curl_easy_setopt(session, CURLOPT_URL, url);
curl_easy_setopt(session, CURLOPT_WRITEDATA, fichier);
curl_easy_setopt(session, CURLOPT_WRITEFUNCTION, ecrire);
curl_easy_perform(session);
curl_easy_cleanup(session);
}
/*
FONCTION QUI SELECTIONNE LES KEYWORDS
*/
int iso_key (char* data,char*keywords )
{ int i=0;
int j;
char * debut = "keywords\" content=\"";
while (j<500000)
{data++;
if(*data=='k')
{if (strncmp(data,debut,19)==0)
{data=data+19;
while (*data!='\"')
{*keywords=*data;
keywords++;
i++;
data++;
if(*data=='\"')
break;
}
}
}
if((*data=='\"' )&& (i!=0))
break;
j++;
}
return i;
}
/*
FONCTION QUI SELECTIONNE LA SOUS CHAINE D'ADRESSE DE LIEN
*/
int iso_lien (char* data,char*sous_lien )
{ int i;
char * debut = "<a href=\"http://";
while (i==0)
{data++;
if(*data=='<')
{if (strncmp(data,debut,16)==0)
{data=data+16;
while (*data!='\"')
{*sous_lien=*data;
sous_lien++;
i++;
data++;
if(*data=='\"')
break;
}
}
}
if((*data=='\"' )&& (i!=0))
break;
}
return i;
}
/*
FONCTION QUI DOIT RETENIR LA CHAINE DE TITRE
*/
int iso_chaine (char* data,char*sous_chaine )
{ int i=0;
char * debut = "<title>";
char * fin = "<\title>";
while (i==0)
{data++;
if(*data=='<')
{if (strncmp(data,debut,7)==0)
{data=data+7;
while (*data!='<')
{*sous_chaine=*data;
sous_chaine++;
i++;
data++;
if(*data=='<')
if (strncmp(data,fin,8)==0)
break;
}
}
}
if (strncmp(data,fin,8)==0)
break;
}
return i;
}
int main()
{ int i,u,v,k;
char *source = (char*)malloc(500000*sizeof(char));
char url[256];
char sous_lien[12];
char sous_chaine[255];
char keywords[200];
char nmemb;
printf ("Entrer l adresse du site qu il faut analyser...\n");
scanf("%s",url);
dlwebsite(url, source);
v=iso_chaine (source,sous_chaine);
printf("%s\n", sous_chaine);
k=iso_key (source,keywords);
printf ("%s\n", keywords);
i=iso_lien (source,sous_lien);
printf("%s\n", sous_lien);
scanf("%s",&u);
getchar();
getchar();
} |
Partager