1

WWW :: Mechanizeを使用して、Webページからフォームを取得しています。

#!/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

私は何をしますか?

4

1 に答える 1

1

正確に間違っている可能性があることを知らずに、WWW::Mechanizeが応答で見つけることができるフォームを次のように出力しようとする場合があります。

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

すべてのフォームとそれぞれの属性などを出力する必要があります。

フォームがダンプにあることを再確認してください。そうでない場合は、何かが間違っています。次に、フォームの->{attr}->{id}も期待どおりであることを確認します。

また、名前などの別の方法を使用してフォームを選択し、それが役立つかどうかを確認することもできます。

于 2010-09-28T11:03:45.400 に答える