Récupérer source d'une page web en C sous linux

guepard53 Messages postés 35 Date d'inscription samedi 16 août 2003 Statut Membre Dernière intervention 23 février 2009 - 12 mai 2004 à 12:43
guepard53 Messages postés 35 Date d'inscription samedi 16 août 2003 Statut Membre Dernière intervention 23 février 2009 - 29 sept. 2005 à 14:22
Salut à tous ! :)

Je voudrais récupérer la source d'une page dont je donne l'URL en C sous Linux donc.

Avec la librairie 'urlmon.h' sous windows, j'y arrive avec les commandes 'internetOpen, InternetOpenUrl, ...'.

Existe-t'il des commandes similaires sous linux ?

J'ai lu que je pouvais aussi passer par des sockets aussi mais je ne sais pas les utiliser...

Si qqun pouvait m'aider, ce serait génial !

Merci d'avance !

Guépard 8-)

11 réponses

MetalDwarf Messages postés 241 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 23 janvier 2006
12 mai 2004 à 18:09
Pour recuperer simplement la source d une page web, il y a 36000 solutions sous Linux... Tu peux utiliser un programme externe en ligne de commande par exemple mais le plus simple et le plus rapide est sans doute libcurl
0
guepard53 Messages postés 35 Date d'inscription samedi 16 août 2003 Statut Membre Dernière intervention 23 février 2009
12 mai 2004 à 19:21
Oui, c'est ce qu'on m'a dit ailleurs aussi. J'ai essayé mais j'ai des erreurs à la compilation comme quoi il reconnaît pas curl_easy_init(), curl_easy_setopt(), ... mais il reconnait bien la librairie curl.h car il ne met pas d'erreur pour la déclaration de CURL *curl et CURLcode res...

Je ne suis pas un spécialiste linux (loin de là ;-p), keske j'ai fait comme bétise ?

Guépard 8-)
0
MetalDwarf Messages postés 241 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 23 janvier 2006
12 mai 2004 à 20:51
Héhé... Tu as bien pense a mettre -lcurl sur la ligne de commande de gcc?
0
guepard53 Messages postés 35 Date d'inscription samedi 16 août 2003 Statut Membre Dernière intervention 23 février 2009
12 mai 2004 à 23:29
GENIAL !! C'est ça !!

Un grand merci !!!!

Ciaooooo

Guépard 8-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_firejocker Messages postés 4 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 29 septembre 2005
29 sept. 2005 à 12:00
Bonjour,

moi je debuté avec libcurl (sous win mais c'est pareil normalement)

par contre je vois pas ou se trouve le code source de la page web

une fois que ce code a été executé :


CURL *curl;

CURLcode res;



curl = curl_easy_init();

if(curl) {

/* First set the URL that is about to receive our POST. This URL can

just as well be a https:// URL if that is what should receive the

data. */

curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com");

/* Now specify the POST data */

curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "name=daniel&project=curl");



/* Perform the request, res will get the return code */

res = curl_easy_perform(curl);



/* always cleanup */

curl_easy_cleanup(curl);

}



Pourriez vous m'aider ?
0
guepard53 Messages postés 35 Date d'inscription samedi 16 août 2003 Statut Membre Dernière intervention 23 février 2009
29 sept. 2005 à 12:04
Salut, ça fait bien longtemps mtn que j'ai joué avec ça...

Mais le résultat dans ton bout de code est dans la variable 'res'.

Fait un print de res et tu verras bien ce qu'il y a dedans.

A+
0
cs_firejocker Messages postés 4 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 29 septembre 2005
29 sept. 2005 à 12:19
ok c'est cool



merci bien :)
0
cs_firejocker Messages postés 4 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 29 septembre 2005
29 sept. 2005 à 12:25
je veux le mettre dans une zone de texte WXMemo (WxWidget)



je tente WxMemo1->AppendText(res); -> erreur de compil,

comment je dois le transtyper pour le mettre dedans ?



(nb: desolé pour les dumbs questions :) mais jsuis un novice du novisme la dedans :))
0
guepard53 Messages postés 35 Date d'inscription samedi 16 août 2003 Statut Membre Dernière intervention 23 février 2009
29 sept. 2005 à 12:54
C'est un page que tu dois donner :

J'ai trouvé ça comme exemple : (en gros, tu devrais pouvoir faire wxString page; page.Append(res, strlen(res)); WxMemo1->AppendText(page); A tester... )

Exemple :
void Project1Frm::WxButton1Click(wxCommandEvent& event)
{
// insert your code here
wxString site = wxT("http://www.site.com/XXXXX.txt");
wxURL url(site);
wxInputStream *data = url.GetInputStream();

char c;
int bytesread;
wxString page;

while ( (bytesread = (data->Read(&c, 1)).LastRead()) > 0 )
{
page.Append((wxChar)c, 1);
}

delete data;
WxMemo1->AppendText(page);
event.Skip();
}
0
cs_firejocker Messages postés 4 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 29 septembre 2005
29 sept. 2005 à 13:47
???



c'est quoi ce code ? je vois pas trop ou le mettre avec libcurl
0
guepard53 Messages postés 35 Date d'inscription samedi 16 août 2003 Statut Membre Dernière intervention 23 février 2009
29 sept. 2005 à 14:22
WxString page;
page.Append(res, strlen(res));
WxMemo1->AppendText(page)

Essaie un truc comme ça à la place de :

WxMemo1->AppendText(res);
0
Rejoignez-nous