使用 WWW::Mechanize 自动搜索

Automatic Search Using 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();

不过,我觉得本站搜索框的"Name"不是"q"。我在 site/lib/WWW/Mechanize.pm 第 1442 行的未定义值上收到以下错误 - "Can't call method "value"。任何帮助深表感谢。谢谢!

如果您在浏览器中禁用 JavaScript 然后您会注意到搜索表单不会加载,这意味着它正在由 JavaScript 加载,这就是您无法处理它的原因WWW::Mechanize. Have a look at WWW::Mechanize::Firefox, this might help you with your task. Check out the example scripts, cookbook and FAQs.

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