簡體   English   中英

Perl WWW ::機械化和cookie

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM