La fonction follow_link
wobot
-
wobot -
wobot -
Bonjour,
Cela concerne la fonction follow_link: J'essaye d'utiliser une deuxième fois la fonction sur une page que j'avais déjà "follow" avec cette même fonction donc. J'ai utilisé d'abord la méthode avec get mais ça a pas marché donc j'ai tenté celle proposée par le site metacpan (voir pièce jointe) mais l'invite répond "link not found at projet.pl line 22" et pourtant, le lien est bien présent dans le code source de la page.
Quelqu'un pourrait m'aider? Merci d'avance.
Cela concerne la fonction follow_link: J'essaye d'utiliser une deuxième fois la fonction sur une page que j'avais déjà "follow" avec cette même fonction donc. J'ai utilisé d'abord la méthode avec get mais ça a pas marché donc j'ai tenté celle proposée par le site metacpan (voir pièce jointe) mais l'invite répond "link not found at projet.pl line 22" et pourtant, le lien est bien présent dans le code source de la page.
Quelqu'un pourrait m'aider? Merci d'avance.
use LWP::Simple;
use PerlIO::locale;
use HTML::TreeBuilder;
use WWW::Mechanize;
binmode STDOUT, ':locale';
use strict;
use warnings;
print "Entrez le nom du premier acteur: ";
my $acteur1 = <STDIN>;
print "Entrez le nom du premier acteur: ";
my $acteur2 = <STDIN>;
print "Nous allons comparer la filmographie de $acteur1 et $acteur2";
my $lien1 = "https://www.imdb.com/find?s=nm&q=$acteur1";
my $mech = WWW::Mechanize->new();
$mech->get($lien1);
$mech->follow_link( url_regex => qr/nm0/i );
$mech->follow_link( url_regex => qr/act_/i );
print $mech->content;
2 réponses
-
Salut wobot,
Il y a 20 lignes dans ce que tu as posté, pas 22, alors on ne sait pas à quelle ligne le message d'erreur se réfère.
En supposant qu'il s'agisse de la 2ème ligne d'appel àfollow_link()
, ce message signifie qu'aucune URL dans un lien de la page que tu as récupéré ne correspond à ton critère de recherche correspondant "act_".
Vérifie les liens présents sur la page récupérée après le premier appel àfollow_link()
avec la méthodelinks()
(récupère les dans un tableau et affiche son contenu).
Tu devrais aussi lire https://www.imdb.com/conditions?ref_=ft_cou pour t'assurer que ce tu fais est conforme aux conditions d'utilisation de ce site.
Dal-
-
tu as récupéré un tableau, il faut affecter le retour de la méthode
links()
à un tableau que tu déclares dans ton script Perl puis itérer dans les éléments du tableau (par exemple avecforeach
) pour les afficher ou l'afficher autrement, par exemple avec le module Data::Dumper (qui est un Core module, standard dans Perl)
https://perlmaven.com/perl-arrays
Par exemple :
my @url_links = $mech->links(); foreach my $url (@url_links) { print "url = $url\n"; } -
-
-
-
-
Merci beaucoup, j'ai trouvé la solution!
J'ai posté un nouveau sujet car j'ai un autre problème sur le même code.
Ce serait cool que tu checkes si t'as le temps ^^