很抱歉这个广泛的问题,但我根本不知道如何更好地描述这一点,甚至不知道该动作被称为什么。它类似于网络爬虫,但它也与网站交互。
我不想做任何邪恶的事情,我只是在公共网站上需要做 200 个查询,我真的不想一个接一个地输入它们。基本上,我只想使用unix工具(也许是lynx?类似的东西?)或者一些perl脚本去一个网站,在“搜索”字段中输入文本,按“去”,然后保存整个页面结果。
谢谢!
很抱歉这个广泛的问题,但我根本不知道如何更好地描述这一点,甚至不知道该动作被称为什么。它类似于网络爬虫,但它也与网站交互。
我不想做任何邪恶的事情,我只是在公共网站上需要做 200 个查询,我真的不想一个接一个地输入它们。基本上,我只想使用unix工具(也许是lynx?类似的东西?)或者一些perl脚本去一个网站,在“搜索”字段中输入文本,按“去”,然后保存整个页面结果。
谢谢!
perl -MWWW::Mechanize::Shell -e shell
然后:获取、填写、打开、提交。完成 Web 交互后,执行:script
并将输出保存到whatever.pl
.
示例会话:
$ perl -MWWW::Mechanize::Shell -e shell
(no url)>get http://google.com/
http://www.google.pl/>fillout
(text)q> [] depesz
http://www.google.pl/>submit
200
http://www.google.pl/search?ie=ISO-8859-2&hl=pl&source=hp&q=depesz&gbv=1>script
#!/opt/perlbrew/perls/perl-5.18.0/bin/perl -w
use strict;
use WWW::Mechanize;
use WWW::Mechanize::FormFiller;
use URI::URL;
my $agent = WWW::Mechanize->new( autocheck => 1 );
my $formfiller = WWW::Mechanize::FormFiller->new();
$agent->env_proxy();
$agent->get('http://google.com/');
$agent->form_number(1) if $agent->forms and scalar @{$agent->forms};
$formfiller->add_filler( 'q' => Fixed => 'depesz' );$formfiller->fill_form($agent->current_form);
$agent->submit();