我使用WWW :: Mechanize :: Shell来测试东西。 由于我没有设法登录我想刮去的网站,我想我会使用浏览器cookie(chrome或firefox)用于'cookie'命令的特定网站WWW :: Mechanize :: Shell有。WWW ::机械化和饼干
问题是,Cookies通常存储在一个单独的文件中,这是不好的,如何获得只有这个特定网站的cookie?
谢谢,
我使用WWW :: Mechanize :: Shell来测试东西。 由于我没有设法登录我想刮去的网站,我想我会使用浏览器cookie(chrome或firefox)用于'cookie'命令的特定网站WWW :: Mechanize :: Shell有。WWW ::机械化和饼干
问题是,Cookies通常存储在一个单独的文件中,这是不好的,如何获得只有这个特定网站的cookie?
谢谢,
为什么不把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);
所有这一切都是在文档中。
HTTP::Cookies::Netscape
,HTTP::Cookies::Microsoft
加载您现有的浏览器cookies。
这是一个很好的解释,并且非常有帮助。 但是,实际上我想要的是加载我已经拥有的cookie,cookies位于Firefox的cookies文件中(不知道它在哪里......)。 这可能吗? – snoofkin 2010-08-28 22:28:16
那么,使用其中一个HTTP :: Cookie :: *模块来处理您想要加载的cookie文件的类型。 – 2010-08-30 21:59:28