使用 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。
我正在尝试编写一个 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。