加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在Perl的WWW :: Mechanize中打印cookie_jar值?

发布时间:2020-12-15 23:23:15 所属栏目:大数据 来源:网络整理
导读:如何打印正在设置的cookie / cookie_jar的值? 试: ##my $cookie_jar=HTTP::Cookies-new(file = "cookie.jar",autosave=1,ignore_discard=1);my $cookie_jar=HTTP::Cookies-new(); ## Would like it to be in memorymy $agent = WWW::Mechanize-new(cookie_
如何打印正在设置的cookie / cookie_jar的值?

试:

##my $cookie_jar=HTTP::Cookies->new(file => "cookie.jar",autosave=>1,ignore_discard=>1);
my $cookie_jar=HTTP::Cookies->new(); ## Would like it to be in memory
my $agent = WWW::Mechanize->new(cookie_jar => $cookie_jar);

##my $agent = WWW::Mechanize->new();
##my $agent = WWW::Mechanize->new(autocheck => 1);

##$agent->cookie_jar( {} );

# we need cookies
##$agent->cookie_jar(HTTP::Cookies->new);

print "Set Cookie Jar?n";
print $agent->cookie_jar->as_string();
print "n";

$agent->get($url); // url is a https site

这些都没有太多运气,我做错了什么?

解决方法

好吧,你必须在饼干罐里放一些饼干才能看到输出中的任何饼干.到目前为止,你有一个空饼干罐.确保您添加一些cookie或您正在访问的站点设置它们:

use HTTP::Cookies;
use WWW::Mechanize;

my $cookie_jar = HTTP::Cookies->new;
my $agent      = WWW::Mechanize->new( cookie_jar => $cookie_jar );

$cookie_jar->set_cookie(
    qw(
    3
    cat
    buster
    /
    .example.com
    0
    0
    0
    )
    );

    $agent->get( 'http://www.amazon.com' );

print "Set Cookie Jar?n",$agent->cookie_jar->as_string,"n";

这给了我输出:

Set Cookie Jar?
Set-Cookie3: session-id=000-0000000-0000000; path="/"; domain=.amazon.com; path_spec; discard; version=0
Set-Cookie3: session-id-time=1272524400l; path="/"; domain=.amazon.com; path_spec; discard; version=0    Set-Cookie3: cat=buster; path="/"; domain=.example.com; port=0; version=3

但是,您不需要直接调用HTTP :: Cookies. LWP将负责这一点.你只需给cookie_jar一个哈希引用:

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

如果您只想要来自特定响应的cookie,您可以创建一个单独的cookie jar来保存从响应中提取的cookie:

use WWW::Mechanize;

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

my $response = $agent->get( 'http://www.amazon.com' );

my $cookie_jar = HTTP::Cookies->new;
$cookie_jar->extract_cookies( $response );

print $cookie_jar->as_string;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读