[Perl] Demande authentification avec le script mais pas avec Firefox

Demande authentification avec le script mais pas avec Firefox [Perl] - Perl - Programmation

Marsh Posté le 26-12-2010 à 09:56:19    

Bonjour,

 

Je cherche à récupérer les pharmacies de garde sur ce site (qui était dans une iframe), afin de les publier sur le site de mon village.
Le problème est que si je tente d'y accéder via mon script ci dessous, je me fais remballer à cause d'une demande d'identification.
Cette authentification m'est aussi demandée avec Chromium, mais pas avec Firefox. J'ai tenté en modifiant l'useragent mais pas de changement.

 

Voici le début de mon script Perl :

Code :
  1. #!$(which perl) -w
  2. use strict;
  3. use warnings;
  4. use HTML::Form;
  5. use LWP::Simple;
  6. use LWP::UserAgent;
  7. sub recupPharm {
  8.    # Code postal, lieu, date, heure, version.
  9.    my ($cp, $lieu, $jour, $heure, $version) = qw(5030 Lonzée 26 20h00 2);
  10.    # URL du site.
  11.    my $base = 'http://admin.ringring.be/';
  12.    # Initialise l'user-agent.
  13.    my $ua = LWP::UserAgent->new(agent => "Mozilla/5.0 (X11; U; Linux x86_64; fr-BE; rv:1.9.2.13) Gecko/20101211 Firefox/3.6.13" );
  14.    # Crée la requête
  15.    my $req = HTTP::Request->new(GET => "${base}apb/public/duty_geo2.asp?lan=2" );
  16.    # Exécute la requête et reçoit la réponse.
  17.    my $res = $ua->request($req);
  18.    die $res->status_line if not $res->is_success;
  19.    # Sélectionne le premier formulaire de la page.
  20.    my $form = (HTML::Form->parse($res->content, $base))[0];
  21.    # Remplit les champs.
  22.    $form->find_input('zip_code')->value($cp);
  23.    $form->find_input('city')->value($lieu);
  24.    $form->find_input('T_dag')->value($jour);
  25.    $form->find_input('T_hour')->value($heure);
  26.    $form->find_input('textv')->value($version);
  27.    # Exécute le formulaire.
  28.    my $validate = $ua->request($form->click);
  29.    # Récupère la page.
  30.    my $content = $validate->content;
  31.    &write($content);
  32. }
  33. sub write {
  34.    open(WRITER, "> test.txt" ) or die("Le fichier ne peut être édité !\n" );
  35.    # Écrit le paramètre dans le fichier.
  36.    print WRITER @_;
  37.    close(WRITER);
  38.    return 0;
  39. }
  40. &recupPharm();
 

L'erreur :

You are not authorized to view this page
You do not have permission to view this directory or page using the credentials you supplied.

 

Please try the following:

 

   * Click the Refresh button to try again with different credentials.
    * If you believe you should be able to view this directory or page, please contact the Web site administrator by using the e-mail address or phone number listed on the home page.

 

HTTP 401.2 - Unauthorized: Logon failed due to server configuration
Internet Information Services

 

Technical Information (for support personnel)

 

   * Background:
      This is usually caused by a server-side script not sending the proper WWW-Authenticate header field. Using Active Server Pages scripting this is done by using the AddHeader method of the Response object to request that the client use a certain authentication method to access the resource.

 

   * More information:
      Microsoft Support

 

Pouvez-vous m'aider, je n'y comprends rien ? :(


Message édité par Gavrinis le 29-12-2010 à 10:28:26
Reply

Marsh Posté le 26-12-2010 à 09:56:19   

Reply

Marsh Posté le 29-12-2010 à 10:29:40    

Je viens de remarquer que j'avais oublié de linker la page ...

Reply

Marsh Posté le 29-12-2010 à 11:12:34    

peut être parce que le formulaire est en POST et non en GET...

 

PS: je ne suis pas sur que ce soit très légal de récupérer des infos automatiquement si tu n'as pas l'accord de l'éditeur du site...


Message édité par pataluc le 29-12-2010 à 11:13:13
Reply

Marsh Posté le 29-12-2010 à 13:36:26    

Le formulaire est peut-être en POST mais le GET de mon code fait référence à la requête de la page, je ne pense pas qu'il atteigne le formulaire vu qu'une authentification est demandée (en tout cas c'est le comportement que j'ai avec Chromium).
Je vais leur demander la permission et je collerai leur réponse ici pour preuve :).

 

Merci.


Message édité par Gavrinis le 29-12-2010 à 13:45:50
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed