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

Web Perl Discussion :

aspirer une page web sous windows: quels modules pour mon code?


Sujet :

Web Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 68
    Points : 46
    Points
    46
    Par défaut aspirer une page web sous windows: quels modules pour mon code?
    Bonjour, je voudrais développer un programme qui enregistre le contenu d'une page web sur mon PC, pour ensuite faire une recherche par mot clef sur la source.
    Je travaille sous Windows XP,
    j'ai trouvé le code suivant


    use LWP::Simple;

    $mydocument=get(http://www.google.fr); (par ex)

    $reqstatus=getstore(http://www.google.fr, "myfile.html");

    die unless is_success($reqstatus);

    ce programme plante car il me dit qu'il ne connait pas les fonction get et getstore. j'ai installé via la commande ppm le module lwp-simple-post, je ne sais pas vraiment si c'est le bon. est-ce que t'as une idée? je n'arrive pas non plus à installer le module LWP en entier. Je débute en PERL, et je ne comprends pas ce qu'il se passe.

    Merci pour votre aide

    piotr

  2. #2
    Membre habitué

    Inscrit en
    Janvier 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 188
    Points : 142
    Points
    142
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    use LWP::UserAgent; # Client html
     
    my $ua = LWP::UserAgent->new;
    $ua->agent("MyApp/0.1 ");
    my $http = HTTP::Request->new(GET => 'http://www.google.fr');
    my $res = $ua->request($http);
    if ($res->is_success){
        print $res->content;
    }
    else{
        print $res->status_line;
    }
    exit 0;
    pour le post cé quasi pareil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $http = HTTP::Request->new(POST => 'www.siteWeb.com');
    $http->content_type('application/x-www-form-urlencoded');
    $http->content("param1=val1&param2=val2&param3=val3");
    $res = $ua->request($http);
    return $res->status_line if (!$res->is_success);
    voilà, amuse toi bien.
    aucun package à install normalement. (libwww-perl est déjà install il me semble)
    Rq : si tu veux grabber des https (SSL), il te faut Crypt-SSLeay
    Si tu as une version 5.8 :
    ppm>install http://theoryx5.uwinnipeg.ca/ppms/Crypt-SSLeay.ppd
    Sinon (versions 5.6)
    ppm>install http://theoryx5.uwinnipeg.ca/ppmpack...ypt-SSLeay.ppd

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 68
    Points : 46
    Points
    46
    Par défaut pb de compil
    Merci pour ta réponse, malheureusement j'ai le message d'erreur "can't locate object method "new" via package "LWP:: useragent" (perhaps you forgot to load "LWP::useragent"?
    en faisant une recherche ppm search lwp ,j'ai plusieurs modules à ma disposition:

    LWP-UserAgent-determined
    LWP-UserAgent-iTMS_client
    LWP-UserAgent-Proxyany
    LWP-UserAgent-TWiki-TWikiGuest
    LWP-UserAgent-WithCache

    je ne sais pas trop lequel employer



    Citation Envoyé par ramislebob
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    use LWP::UserAgent; # Client html
     
    my $ua = LWP::UserAgent->new;
    $ua->agent("MyApp/0.1 ");
    my $http = HTTP::Request->new(GET => 'http://www.google.fr');
    my $res = $ua->request($http);
    if ($res->is_success){
        print $res->content;
    }
    else{
        print $res->status_line;
    }
    exit 0;
    pour le post cé quasi pareil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $http = HTTP::Request->new(POST => 'www.siteWeb.com');
    $http->content_type('application/x-www-form-urlencoded');
    $http->content("param1=val1&param2=val2&param3=val3");
    $res = $ua->request($http);
    return $res->status_line if (!$res->is_success);
    voilà, amuse toi bien.
    aucun package à install normalement. (libwww-perl est déjà install il me semble)
    Rq : si tu veux grabber des https (SSL), il te faut Crypt-SSLeay
    Si tu as une version 5.8 :
    ppm>install http://theoryx5.uwinnipeg.ca/ppms/Crypt-SSLeay.ppd
    Sinon (versions 5.6)
    ppm>install http://theoryx5.uwinnipeg.ca/ppmpack...ypt-SSLeay.ppd

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Points : 459
    Points
    459
    Par défaut
    bizare qu'il ne reconnaisse pas get() ?!
    C'est une fonction importée d'office avec LWP::Simpe

    Essai de l'importer explicitement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    use LWP::Simple qw(get getstore);
    use strict;
    use warnings;
     
    print get("http://www.google.fr");
    Recherche staigiaire(s) motivé(s) sur projet perl/reseau a grande echelle. Me contacter par mp.

  5. #5
    Membre habitué

    Inscrit en
    Janvier 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 188
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par piotr
    Merci pour ta réponse, malheureusement j'ai le message d'erreur "can't locate object method "new" via package "LWP:: useragent" (perhaps you forgot to load "LWP::useragent"?
    en faisant une recherche ppm search lwp ,j'ai plusieurs modules à ma disposition:

    LWP-UserAgent-determined
    LWP-UserAgent-iTMS_client
    LWP-UserAgent-Proxyany
    LWP-UserAgent-TWiki-TWikiGuest
    LWP-UserAgent-WithCache

    je ne sais pas trop lequel employer
    bizarre... j't'ai fait un copier/coller d'un script qui marche nickel chez me sous Xp et Linux (perl 5.6 et 5.8)..
    met les parenthèses maybe :s sinon des attributs...
    look here ou here
    ++

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 68
    Points : 46
    Points
    46
    Par défaut ça marche merci!
    Merci les gars pour m'avoir permis d'avancer :le script fonctionne!!



    Citation Envoyé par pospos
    bizare qu'il ne reconnaisse pas get() ?!
    C'est une fonction importée d'office avec LWP::Simpe

    Essai de l'importer explicitement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    use LWP::Simple qw(get getstore);
    use strict;
    use warnings;
     
    print get("http://www.google.fr");

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    met un tag resolu dans ce cas.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/01/2015, 23h03
  2. Ouvrir une page web sous VBS
    Par nico0807 dans le forum VBScript
    Réponses: 2
    Dernier message: 21/03/2009, 17h22
  3. Réponses: 3
    Dernier message: 02/06/2008, 08h42
  4. Recuperer une page Web sous Windows
    Par tmanta7 dans le forum Réseau
    Réponses: 7
    Dernier message: 22/05/2006, 23h21
  5. problème avec une page web sous firefox!
    Par 3psilOn dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 24/11/2004, 11h49

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