Précédent   Forum du club des développeurs et IT Pro > Autres langages > Perl > Web
Web Toutes vos questions sur la construction de pages web en Perl (CGI, Ajax, mod_perl, sessions, ...) Avant de poster, veuillez consulter les FAQs perl, les cours Perl et les sources Perl.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/11/2012, 14h01   #1
PadawanInPerl
Membre habitué
 
Avatar de PadawanInPerl
 
Inscription : juillet 2009
Messages : 370
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : juillet 2009
Messages : 370
Points : 110
Points : 110
Par défaut Récupération de fichier sur site https

Bonjour,

Après quelques recherches et pas mal d'incompréhension (c'est la première fois et demie ) que je me lance dans le web, enfin...je ne trouve pas ce que je veux...

Sur une page https, je souhaite télécharger les fichiers correspondant à une certaine date.
la page https est de type :
lien_du_document.doc /espace/ 01-nov-2012 /espace/ taille
Code :
<img src="/icons/unknown.gif" alt="[   ]"> <a href="fichier.doc">fichier.doc</a>               13-Nov-2012 07:03  6.5K
Quelqu'un pourrait-il me guider ?

je teste actuellement : http://perl.developpez.com/faq/perl/...rgementpageweb
__________________
Windows 7, 64 bit
Perl 5.12, ActivePerl
Python 3.2, ActivePython ( NOVICE ! )
PadawanInPerl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2012, 14h20   #2
PadawanInPerl
Membre habitué
 
Avatar de PadawanInPerl
 
Inscription : juillet 2009
Messages : 370
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : juillet 2009
Messages : 370
Points : 110
Points : 110
Avec le script indiqué, j'ai pu récupérer parser la page voulu. Merci le Script (dimitry.e)

mais la question se pose de comment récupérer les fichiers...
__________________
Windows 7, 64 bit
Perl 5.12, ActivePerl
Python 3.2, ActivePython ( NOVICE ! )
PadawanInPerl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2012, 14h28   #3
PadawanInPerl
Membre habitué
 
Avatar de PadawanInPerl
 
Inscription : juillet 2009
Messages : 370
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : juillet 2009
Messages : 370
Points : 110
Points : 110
solution ? :

http://www.developpez.net/forums/d95...hier-via-http/
__________________
Windows 7, 64 bit
Perl 5.12, ActivePerl
Python 3.2, ActivePython ( NOVICE ! )
PadawanInPerl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2012, 15h21   #4
PadawanInPerl
Membre habitué
 
Avatar de PadawanInPerl
 
Inscription : juillet 2009
Messages : 370
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : juillet 2009
Messages : 370
Points : 110
Points : 110
Code :
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
#!/usr/local/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);
my $url = "https://xxxxx";
my $login="xxx:xxx";
my $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);
Jusque là, je respecte le code de dimitry.e

ici, je l'adapte à mes besoins :
Code :
1
2
3
4
5
6
7
8
9
 
my $date = "01_01_2012";
my @tab = split(/\n/, $content->decoded_content);
 
foreach my $fic(@tab) {
if ($fic =~/$date/){
 
    }
  }
cependant, ici...comment procéder au téléchargement des fichiers ??

help
__________________
Windows 7, 64 bit
Perl 5.12, ActivePerl
Python 3.2, ActivePython ( NOVICE ! )
PadawanInPerl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2012, 10h16   #5
PadawanInPerl
Membre habitué
 
Avatar de PadawanInPerl
 
Inscription : juillet 2009
Messages : 370
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : juillet 2009
Messages : 370
Points : 110
Points : 110
J'arrive bien à avoir une liste de fichier correspondant à la date demandé.

mais je n'arrive toujours pas à télécharger les fichiers en question...

Je me demandais également ou se téléchargent les fichiers ?
Est-il possible de spécifier un dossier particulier ?
__________________
Windows 7, 64 bit
Perl 5.12, ActivePerl
Python 3.2, ActivePython ( NOVICE ! )
PadawanInPerl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2012, 08h37   #6
PadawanInPerl
Membre habitué
 
Avatar de PadawanInPerl
 
Inscription : juillet 2009
Messages : 370
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : juillet 2009
Messages : 370
Points : 110
Points : 110
Le "mirror" fonctionne bien sauf qu'il fallait que j'intègre les login et mot de passe dans l'url...
__________________
Windows 7, 64 bit
Perl 5.12, ActivePerl
Python 3.2, ActivePython ( NOVICE ! )
PadawanInPerl est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h24.


 
 
 
 
Partenaires

Hébergement Web