使用WWW :: Mechanize自动搜索

时间:2015-01-26 18:12:40

标签: perl file search-engine webpage www-mechanize

我正在尝试编写一个Perl脚本,它会自动键入this LexisNexis search page上的搜索变量并检索搜索结果。

我正在使用WWW::Mechanize模块,但我不知道如何找出搜索栏本身的字段名称。这是我到目前为止的脚本 - >

#!/usr/bin/perl
use strict;
use warnings;
use WWW::Mechanize;
my $m = WWW::Mechanize->new();

my $url = "http://www.lexisnexis.com/hottopics/lnacademic/?verb=sr&csi=379740";
$m->get($url);

$m->form_name('f');
$m->field('q', 'Test');
my $response = $m->submit();
print $response->content();

但是,我认为本网站搜索框的“名称”不是“q”。我收到以下错误 - “无法调用方法”值“在站点/ lib / WWW / Mechanize.pm行1442上的未定义值。”任何帮助深表感谢。谢谢!

1 个答案:

答案 0 :(得分:5)

如果您在浏览器中禁用了JavaScript,那么您会注意到搜索表单没有加载,这意味着它正在被JavaScript加载,这就是您无法使用WWW::Mechanize处理它的原因。看看WWW::Mechanize::Firefox,这可能会帮助您完成任务。查看example scriptscookbookFAQs

您也可以使用Selenium执行相同操作,请参阅Gabor's tutorial on Selenium