2010-08-28 143 views
4

我使用WWW :: Mechanize :: Shell來測試東西。 由於我沒有設法登錄我想颳去的網站,我想我會使用瀏覽器cookie(chrome或firefox)用於'cookie'命令的特定網站WWW :: Mechanize :: Shell有。WWW ::機械化和餅乾

問題是,Cookies通常存儲在一個單獨的文件中,這是不好的,如何獲得只有這個特定網站的cookie?

謝謝,

回答

10

爲什麼不把cookie存儲在一個文件好?

由於WWW::Mechanize構建於LWP::UserAgent之上,您可以像處理LWP::UserAgent一樣處理cookies。您可以使Cookie jar成爲文件或內存中的散列。

如果你不想保存在一個文件中的Cookie,使用空哈希引用,當你構建機甲對象:

use WWW::Mechanize; 

my $mech = WWW::Mechanize->new(cookie_jar => {}); 

如果你想使用一個新的文件,做一個新HTTP::Cookies對象:

use WWW::Mechanize; 

my $mech = WWW::Mechanize->new( 
    cookie_jar => HTTP::Cookies->new(file => "$ENV{HOME}/.cookies.txt") 
    ); 

如果要加載瀏覽器特定的Cookie文件,請使用正確的模塊吧:

use WWW::Mechanize; 

my $mech = WWW::Mechanize->new( 
    cookie_jar => HTTP::Cookies::Netscape->new(file => $filename) 
    ); 

如果你不想要的cookies可言,用民主基金明確:

use WWW::Mechanize; 

my $mech = WWW::Mechanize->new(cookie_jar => undef); 

所有這一切都是在文檔中。

+0

這是一個很好的解釋,並且非常有幫助。 但是,實際上我想要的是加載我已經擁有的cookie,cookies位於Firefox的cookies文件中(不知道它在哪裏......)。 這可能嗎? – snoofkin 2010-08-28 22:28:16

+0

那麼,使用其中一個HTTP :: Cookie :: *模塊來處理您想要加載的cookie文件的類型。 – 2010-08-30 21:59:28