FAQ PerlConsultez toutes les FAQ
Nombre d'auteurs : 18, nombre de questions : 250, dernière mise à jour : 29 octobre 2015 Ajouter une question
Bienvenue sur la FAQ Perl. Cette FAQ a pour vocation de vous enseigner ou de vous faire revoir les notions élémentaires de ce fantastique langage. Perl est très utilisé dans différents domaines depuis la gestion système, le réseaux, l'administration de bases de données, le web (CGI), la bureautique, la conception d'interfaces graphiques ou des contextes scientifiques telle la bioinformatique. Nous espérons que cette FAQ vous sera d'une grande utilité.
Vous souhaitez participer à l'amélioration de cette FAQ, n'hésitez pas !! Commentez
Bonne lecture !
Voici un script permettant de récupérer le contenu d'une page Web et l'afficher sur la sortie standard STDOUT. Il y a la possibilité de spécifier un proxy HTTP. Ainsi qu'un login pour les connexions HTTP (autorisation de base).
Code perl : | Sélectionner tout |
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 | #!/usr/bin/perl use warnings; use strict; use Getopt::Long; use LWP::Simple; use LWP::UserAgent; use MIME::Base64; =for COMM Script permettant de recuperer le contenu du page web en HTTP avec utilisation d'un proxy et d'un login si besoin. Arguments obligatoires : --url=URL Precise la page a recuperer Arguments Optionnels : --login=USER:PASSWD Specifie le login a utiliser --proxy=PROXY Indiquer un proxy HTTP =cut my ( $url, $login, $proxy ); # Recuperation et stockage des options dans leurs variables respectives GetOptions( 'url=s' => \$url, 'login=s' => \$login, 'proxy=s' => \$proxy, ); # Le script a besoin d'au moins une URL pour fonctionner if ( !defined $url ) { die( 'Usage : ' . $0 . " --url=URL\n" ); } # Le login doit etre forme du nom et du mot de passe separes par deux points if ( ( defined $login ) and ( $login !~ /.+:.+/ ) ) { die( 'Usage : ' . $0 . " --url=URL --login=USER:PASSWD\n" ); } # Creation du User Agent. Il se charge de traiter la requete HTTP, comme un navigateur le ferait. my $ua = LWP::UserAgent->new; # Le timeout permet de savoir a partir de quand on considere qu'un requete n'aboutira pas $ua->timeout(20); # On crée la requete HTTP correspondant a l'url my $req = HTTP::Request->new( GET => $url ); if ( defined $proxy ) { # Indique a l'user agent qu'il va devoir utiliser un proxy $ua->env_proxy; # Indique a l'user agent quel proxy utiliser $ua->proxy( ['http'], $proxy ); } if ( defined $login ) { # Encodage en base 64 comme le demande HTTP my $token = encode_base64($login); # Ajout de l'option 'Authorization Basic' et du login dans la requete. (cf RFC de HTTP) $req->header( Authorization => 'Basic ' . $token ); } # Envoi de la requete et reception de la reponse dans $content my $content = $ua->request($req); # Si la requete a abouti, afficher le contenu de la page web if ( $content->is_success ) { print $content->decoded_content; } else { die $content->status_line; # Afficher la raison de l'erreur } |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.