[英]Perl WWW::Mechanize and cookies
WWW :: Mechanize遇到了一些问题。
我要加载的页面包含Javascript,等待30秒,然后解析我需要单击的按钮(以确认我已经同意网站条款:)
我知道Mechanize不适用于JS,所以我需要使用Cookie来获取此页面,当我按下此按钮时,该网站就会放到浏览器中。
这些cookie的大小如下:同意=> 1,lastvisit => 1388753990,lastseen => 0
我怎样才能在机载这些cookie的情况下获得所需的页面?
码:
my $cookie_jar = HTTP::Cookies->new;
my $agent = WWW::Mechanize->new( cookie_jar => $cookie_jar );
$cookie_jar->set_cookie("agreed"=>1,"lastseen"=>0,"lastvisit"=>1388753990);
$agent->get( 'http://www.example.com' );
print $agent->content();
感谢帮助!
如果您想将真正的Mechanize转移到WWW-Mechanize-Firefox,那么您将获得真正的JS环境:
use WWW::Mechanize::Firefox;
my $mech = WWW::Mechanize::Firefox->new();
$mech->get('http://ursite.com');
# The submit button is generated after the page has loaded
my $retries = 10;
while ($retries-- and ! $mech->is_visible( xpath => '//*[@id="submit"]' )) {
sleep 1;
};
die "Timeout" if 0 > $retries;
# Now the element exists
$mech->click({xpath => '//*[@id="submit"]'});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.