【发布时间】:2015-03-25 05:16:29
【问题描述】:
我正在尝试编写一个 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”。我收到以下错误 - “无法在 site/lib/WWW/Mechanize.pm 第 1442 行的未定义值上调用方法“值”。”任何帮助深表感谢。谢谢!
【问题讨论】:
-
仅供参考,该网站的 Terms of Service 说,“严禁通过机械、程序化、机器人、脚本或任何其他自动化方式使用在线服务。除非另有约定LN 以书面形式,仅允许通过手动执行的、离散的、单独的搜索和检索活动使用在线服务。”
-
这是一个学术研究项目,我们已经获得了进行这种自动化的必要权限。谢谢。
-
很高兴知道。大多数尝试抓取网站的人甚至都懒得阅读 TOS。
-
@Amritha 有几个,比如
WWW::Mechanize::Firefox和WWW::Mechanize::PhantomJS。 -
@Amritha:您的 JavaScript 问题是关于 Mech 的第 1 个问题。您可以在此处查看常见问题解答,了解处理 JavaScript 的其他模块的列表。 search.cpan.org/dist/WWW-Mechanize/lib/WWW/Mechanize/FAQ.pod
标签: perl file search-engine webpage www-mechanize