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 :

Récupération de fichier sur site https


Sujet :

Web Perl

  1. #1
    Membre habitué Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Points : 186
    Points
    186
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <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 ! )

  2. #2
    Membre habitué Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Points : 186
    Points
    186
    Par défaut
    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 ! )

  3. #3
    Membre habitué Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Points : 186
    Points
    186
    Windows 7, 64 bit
    Perl 5.12, ActivePerl
    Python 3.2, ActivePython ( NOVICE ! )

  4. #4
    Membre habitué Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Points : 186
    Points
    186
    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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ! )

  5. #5
    Membre habitué Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Points : 186
    Points
    186
    Par défaut
    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 ! )

  6. #6
    Membre habitué Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 462
    Points : 186
    Points
    186
    Par défaut
    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 ! )

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

Discussions similaires

  1. [AC-2003] ADO ConnectionString vers fichier sur site HTTPS
    Par Oliv- dans le forum VBA Access
    Réponses: 2
    Dernier message: 02/11/2009, 14h43
  2. script pour automatiser upload fichier sur site https
    Par ludo_93 dans le forum VBScript
    Réponses: 0
    Dernier message: 03/10/2008, 10h24
  3. [FTP] Récupération taille fichier sur ftp
    Par Kerod dans le forum Langage
    Réponses: 4
    Dernier message: 18/04/2006, 03h18
  4. récupération de fichiers sur Dat
    Par gwendal84 dans le forum Windows XP
    Réponses: 1
    Dernier message: 28/11/2005, 23h50

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