我想创建一个标记收音机框并单击投票按钮的perl脚本。这是一个在线投票,你投票给当地消防部门,前五个部门获得一笔资金,以帮助购买新的供应。他们设置它,这样你就可以每5分钟投1次。我无法执行javascript按钮。我花了几个小时做研究,但我找不到明确的解决方案。
到目前为止,我有:
use strict;
use warnings;
use WWW::Mechanize;
my $mech = WWW::Mechanize->new( autocheck => 1 );
$mech->get( "http://spenglerco.com/everyday-heroes-fund/" );
$mech->set_fields('yop-poll-li-answer-2_yp52e5b2ce31180' => '32');
我发现Mechanize可能不是理想的执行javascript但到目前为止我已经有了最远的。
感谢您的帮助
答案 0 :(得分:1)
WWW :: Mechanize不执行JavaScript。它不是Web浏览器。它是一个简单的HTTP客户端,具有访问DOM的工具。如果你想要一个具有网络浏览器全部功能的Perl模块,我认为你几乎没有运气(我可能是错的)。我曾经听过有人在制作一个在幕后使用FireFox的机械化版本,但我不认为它已经开始了。
我建议找出javascript最终调用的URL,然后直接调用该URL。
答案 1 :(得分:1)
您可以直接使用无头Webkit浏览器phantomjs(例如使用javascript编写解决方案脚本)或通过perl http://blogs.perl.org/users/robhammond/2013/02/web-scraping-with-perl-phantomjs.html。