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