Почему WWW :: Mechanize не может найти правильную форму? - PullRequest
1 голос
/ 14 сентября 2010

Я использую WWW :: Mechanize для извлечения формы с веб-страницы:

#!/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');

HTML-код сайта имеет следующий вид

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

но я получаю ошибку

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

Что мне делать?

1 Ответ

0 голосов
/ 28 сентября 2010

Не зная точно, что это может быть неправильно, вы можете попытаться вывести любые формы, которые WWW :: Mechanize может найти в ответе, используя:

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

Он должен вывести все формы и их соответствующиеатрибуты и т. д.

Дважды проверьте, что форма находится в дампе, в противном случае что-то не так.Затем убедитесь, что форма -> {attr} -> {id} соответствует вашим ожиданиям.

Вы также можете попробовать выбрать форму другим способом, например по имени, и посмотреть, поможет ли это.

...