0

我正在尝试通过 Perl 模块 WWW::Mechanize 搜索 Yellowpages.com。

$mech->get( "http://www.yellowpages.com" );
$mech->form_name( "standard-searchform" );
$mech->field( "search-terms, "schneider" );
$mech->field( "search-location", "CA" );
$mech->submit();

我还尝试了 $mech->submit_form( ... ) 与按钮值/类型,但我一直收到以下消息:

Error POSTing http://www.yellowpages.com/real_deals: Internal Server Error at /usr/lib/cgi-bin/index.pl line 39

第 39 行是

$mech->submit();

yp.com 是否将 Mechanize 转发到该站点?我怎样才能避免这种情况?

4

1 回答 1

1

首先,您错过了一个"after search-terms。查看黄页的源代码,没有名称为“standard-searchform”的表单。该表单的 ID 为“searchform-form”。所以这个例子应该有效:

my $mech = WWW::Mechanize->new;

$mech->get( "http://www.yellowpages.com" );
$mech->form_id( "searchform-form" );
$mech->field( "search-terms", "schneider" );
$mech->field( "search-location", "CA" );
$mech->submit();

编辑:

search-terms 和 search-location 也是输入 ID,其中 WWW::Mechanize 的文档说:

给定字段的名称,将其值设置为指定的值

这意味着您应该使用以下命令更改它们:search_terms 和 geo_location_terms。

于 2011-09-02T08:14:22.513 回答