2010-09-14 5 views
1

J'utilise WWW :: mécaniser pour récupérer un formulaire à partir d'une page Web:Pourquoi WWW :: Mechanize ne peut-il pas trouver le bon formulaire?

#!/usr/bin/perl 

use WWW::Mechanize; 

my $mechanize = WWW::Mechanize->new(); 

$mechanize->proxy(['http', 'ftp'], 'http://proxy/'); 

$mechanize->get("http://www.temp.com/"); 

$mechanize->form_id('signin'); 

Le site HTML a le code comme suit

<form action="https://www.temp.com/session" id="signin" method="post"> 

mais je reçois l'erreur

There is no form with ID "signin" at SiteScraper.pl 

Que dois-je faire?

Répondre

0

Sans savoir exactement peut-être tort, vous pourriez essayer de sortie ne importe quelle forme que WWW :: Mechanize est capable de trouver la réponse en utilisant:

use Data::Dumper; 
print Dumper($mechanize->forms()); 

Il devrait afficher toutes les formes et leurs attributs respectifs

Vérifiez bien que le formulaire est dans la sauvegarde, sinon quelque chose ne va pas. Vérifiez ensuite que le formulaire -> {attr} -> {id} correspond bien à ce que vous attendez.

Vous pouvez également essayer de sélectionner le formulaire d'une autre manière, par ex. par nom, et voir si cela aide.

Questions connexes