Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Membre habitué Avatar de PadawanInPerl
    Profil pro
    Inscrit en
    juillet 2009
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : juillet 2009
    Messages : 403
    Points : 119
    Points
    119

    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 ! )

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

    Informations forums :
    Inscription : juillet 2009
    Messages : 403
    Points : 119
    Points
    119

    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
    403
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : juillet 2009
    Messages : 403
    Points : 119
    Points
    119
    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
    403
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : juillet 2009
    Messages : 403
    Points : 119
    Points
    119

    Par défaut

    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 ! )

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

    Informations forums :
    Inscription : juillet 2009
    Messages : 403
    Points : 119
    Points
    119

    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
    403
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : juillet 2009
    Messages : 403
    Points : 119
    Points
    119

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •