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 !


SommaireCodes sources utilesDes codes sourcesDes codes sources Web (1)
précédent sommaire suivant
 

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 
}

Mis à jour le 1er février 2011 Dimitry.e

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 ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les 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 © 2017 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.

 
Responsable bénévole de la rubrique Perl : djibril -