WWW :: Mechanize和yellowpages.com

时间:2011-09-02 07:57:38

标签: perl module mechanize www-mechanize

我正在尝试通过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转发到该网站?我怎么能避免这种情况?

1 个答案:

答案 0 :(得分:1)

首先,您在搜索字词后错过了"。查看yellowpages的源代码,没有名称为“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();

编辑:

搜索条件和搜索位置也是输入ID,其中WWW :: Mechanize的文档说:

  

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

这意味着您应该使用以下内容进行更改:search_terms和geo_location_terms。