Un prog pour lire la source d'une page web ?

Résolu/Fermé
EL barto ! Messages postés 121 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 7 août 2009 - 25 oct. 2008 à 16:43
 TRANOX - 4 mai 2014 à 23:09
Bonjour,

je voudrais savoir si c'est possible de programmer en C , pour que le programme lise une page web en ligne , et selectionne certaine ligne de caractère .
A voir également:

33 réponses

EL barto ! Messages postés 121 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 7 août 2009 6
27 oct. 2008 à 17:15
C'est vraiment nécessaire de changer dev++ pour code::block ?

Parce que c'est pas que je sois mauvais en anglais mais ...
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
27 oct. 2008 à 17:22
Non, c'est pas nécessaire, c'est juste que je le préfère et que j'ai installé libcurl en très peu de temps...
0
EL barto ! Messages postés 121 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 7 août 2009 6
27 oct. 2008 à 17:29
ouf !

à mon avis kilian a planté tu crois pas ? :)
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
27 oct. 2008 à 17:30
S'il n'a pas libcurl installé, pas facile pour lui de t'aider... J'espère qu'il repassera bientôt, je ne comprends pas tout à cURL...
0
EL barto ! Messages postés 121 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 7 août 2009 6
27 oct. 2008 à 17:35
Moi, j'ai décourvert ça hier.

c'est lui qui m'en a parlé. A quoi ça correspond cet bibliotèques ? est ce que ce qu'on telecharge c'est des trucs officiels ?
( c'est pas que j'aime les sceaux et les tampons), mais bon comme y'avait un tas de nom bizarre (dans la fenêtre de la biblio )qui ne parle qu'à ceux qui les connaisse déjà , comment faire pour faire le tour de tout.

Qui est ce qui écrit tout ça ?
utilisé comme c'est dans dans mon programme ça ressemble à des commandes, mais ce sont déjà des petits programme c'est ça ?
y'a pas un endroit ou on peut avoir accés à des tutoriels ?
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
27 oct. 2008 à 17:45
cURL est une bibliothèque réputée pour la manipulation de fichiers via le réseau. Les tutos je ne sais pas, sur le site officiel, ya la doc.
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
27 oct. 2008 à 17:55
Bon ayé j'ai installé tout ce qu'il faut et j'ai corrigé le script.
Maintenant, gros gros soucis: on ne veut pas m'allouer de mémoire O_o

Aussi je reviens bientôt avec une solution qui pourrait utiliser VirtualAlloc de windows (fonction primaire d'allocation de windows).
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
27 oct. 2008 à 17:56
Comment ça "on ne veut pas t'allouer de mémoire ?"
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
27 oct. 2008 à 17:58
realloc me renvoie NULL, je ne peux rien faire....
Si à la rigueur, ça marche avec une variable d'allocation statique.
Bouge pas je vais te faire un exemple.
0

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

Posez votre question
EL barto ! Messages postés 121 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 7 août 2009 6
27 oct. 2008 à 17:55
ouai, je suis sur
https://www.php.net/curl

effectivement y'a beaucoup de description qui me paraisse plutôt vague.
Un peu comme ci c'était des tautologies !

Quand je lie l'exemple de celle-ci je vois qu'on écrit dans un code en php :
curl_copy_handle — Copie une ressource cURL avec toutes ses préférences

est ce que le language C peut être directement utilisé dans du code écrit en PHP ?
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
27 oct. 2008 à 17:57
Non, tu ne peux pas utiliser de C dans du PHP directement...
0
EL barto ! Messages postés 121 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 7 août 2009 6
27 oct. 2008 à 17:59
mais alors c'est quoi ça ?

<?php
// crée une nouvelle ressource cURL
$ch = curl_init();

// assigne URL et autres options appropriées
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/');
curl_setopt($ch, CURLOPT_HEADER, 0);

// copie la ressource
$ch2 = curl_copy_handle($ch);

// attrape l'URL (http://www.example.com/ et le passe au navigateur
curl_exec($ch2);

// ferme les ressources curl et libère les ressources systèmes
curl_close($ch2);
curl_close($ch);
?>
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
27 oct. 2008 à 18:04
C'est du Php :-)
Le truc c'est que librairie libcurl existe pour le C, le Php etc...
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
27 oct. 2008 à 18:05
Tiens prends ça, j'ai testé et ça marche.
Simplement il ne pourra pas télécharger plus que 4096 octets:
#include <windows.h>
#include <stdlib.h>
#include <curl/curl.h>
#include <stdio.h>

//Variables globales
char buffer[4096];
int offset = 0;

/*là c'est la définition de la fontion buffer_write pour allouer la bonne taille au buffer*/
size_t buffer_write (const void *ptr, size_t size, size_t nmemb, FILE *stream)
{
    
    
    int i;
    char *myptr = (char *) ptr;
    for (i=0; i < size * nmemb; i++)
    {
        if (i + offset >= sizeof(buffer))
           break;
        buffer[i + offset] = myptr[i];
        offset++;
    }
    return size * nmemb;
}

 /*là c'est l'ouverture de la séssion vers l'url, et la lecture grâce à la fonction
 buffer_write*/
int main(int argc, char **argv)
{
    char url[1024];
    int i;
    
    scanf("%s", &url);
    CURL *session = curl_easy_init(); /*Initialisation de la session */
    curl_easy_setopt(session, CURLOPT_URL, url); /*Ici on précise l'url */
    curl_easy_setopt(session,  CURLOPT_WRITEDATA, stdout);  //On fait semblant d'avoir un fichier
    curl_easy_setopt(session,  CURLOPT_WRITEFUNCTION, &buffer_write); //On passe notre fonction
    curl_easy_perform(session);
    curl_easy_cleanup(session); /*Enfin, on libère nos ressources utilisées */
    
    for (i=0; i<offset; i++)
        printf("%c", buffer[i]);
    getchar();
    return 0;
}
0
EL barto ! Messages postés 121 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 7 août 2009 6
27 oct. 2008 à 18:10
Ben mon gars !

t'as réssucité dans la peau d'un crack toi !

juste un question : une page, ça fait plus de 4096 octets ?

Quest ce qui pose cette limite ? 4096
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
27 oct. 2008 à 18:35
La limite de 4096 octets est inscrite en dur dans le code. Si tu veux changer ça, change la taille du tampon (buffer).
0
EL barto ! Messages postés 121 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 7 août 2009 6
27 oct. 2008 à 18:15
C'est absolument certain que c'est absolument LE MEME CODE ?
0
EL barto ! Messages postés 121 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 7 août 2009 6
27 oct. 2008 à 18:21
Bon bravo ça marche.

juste une dernière question, si je veux envoyer les résultat d'un calcul sur une page web ecrite en php , faut il que j'utilise encore Curl, ou bien est ce que ça ne fonctionne qu'à sens unique ?
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
27 oct. 2008 à 18:23
Tu peux aussi envoyer des données sur un serveur avec cURL...
0
EL barto ! Messages postés 121 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 7 août 2009 6
27 oct. 2008 à 18:30
OK bon ben merci à vous les gars.

je passe en statut résolu .

tu es souvent sur le forum ?
0
EL barto ! Messages postés 121 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 7 août 2009 6
27 oct. 2008 à 18:51
je viens d'essayer avec 10 000 et àa n'a pas marché.
Alors qu'avec 5000 ca marche
pourquoi ?
0
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
27 oct. 2008 à 18:54
Ya peut-être un maximum au niveau de la config de cURL...
0
EL barto ! Messages postés 121 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 7 août 2009 6
27 oct. 2008 à 19:00
ok je vois merci
0