Accéder à une page WEB en PERL

Bilbemir -  
-

Bonjour,


Je voudrais, dans un script PERL accéder à une page WEB, en récupérer le source, puis  en "mouliner" le contenu à ma façon.
C'est en fait quelque chose que je fais assez régulièrement grâce au module LWP d'une façon simple, efficace et qui convient tout à fait à mes besoins , avec des scripts du style :

  use LWP::Simple qw(get);

my $html_EG =  "    URL    ";
my $htmlEG   = get($html_EG);


Et (en principe !!) ... $htmlEG contient tout ce que je veux.

Sauf que, aujourd'hui, avec cet URL  :  https://foe-data.ovh/world/fr13/classementeg
le script me renvoie systématiquement l'erreur suivante :

++++++++
Page non disponible
 La page https://foe-data.ovh/world/fr13/classementeg n'a pu Ûtre tÚlÚchargÚe - erreur Bad file descriptor
++++++++

et, je ne m'en sors pas ... Serait-ce le tiret dans l'URL qui provoque cette erreur ?

Merci d'avance pour vos réponses !


Windows / Firefox 104.0

A voir également:

2 réponses


 

Désolé, je ne vois ton message que maintenant.

Le tiret ne devrait poser absolument aucun problème.

Dans les distributions récentes de libwww-perl, le support de https nécessite l'installation du module séparé LWP::Protocol::https

https://metacpan.org/release/ETHER/libwww-perl-6.36/source/README.SSL

As-tu installé ce module depuis CPAN ?

0
Bilbemir Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 

Bonjour,

A mon tour d'avoir longuement trainé pour te répondre !

Ayant pour finir trouvé la solution, je la poste telle quelle

En fait j'ai testé ta proposition, mais cela n'a rien changé. J'ai encore beaucoup cherché et suis maintenant sur une autre piste.
Ce pourrait être un problème de certificat, non valide ? non reconnu ?
Si cela s'avère exact, il faudrait que je bypasse la validation SSL (bien que ce soit peu recommandé, mais bon ...)

Je viens de trouver .....

Il faut forcer la variable   verify_hostname   à 0

use LWP::UserAgent;
use HTTP::Request::Common qw(GET);
 

my $ua = LWP::UserAgent->new( ssl_opts => { verify_hostname => 0 }, );
 
my $req_EG = GET 'https://www.forge-db.com/fr/fr13/guilds/?server=fr13&world=Noarsil';
my $res_EG = $ua->request($req_EG);

Cordialement

0