How to print cookie_jar values ​​in Perl WWW :: Mechanize?

How can I print the values ​​of the set cookie / cookie_jar?

Attempt:

##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

Not too much luck in any of them, what am I doing wrong?

+3
source share
3 answers

Well, you must have several cookies in the cookie jar in order to view the output cookies. So far, you have an empty cookie jar. Either make sure that you have added several cookies, or that the site you are accessing sets them:

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";

This gave me the result:

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

However, you do not need to refer directly to HTTP::Cookies. LWPwill take care of that. You just pass the cookie_jarhash link:

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

, cookie , 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;
+6

, cookie . get()

+1

cookie, cookie HTTP:: Cookie $cookie_jar- > scan (\ & callback). , JSESSIONID cookie www.linkedin.com, :

#!/usr/bin/perl

use strict;
use warnings;

use LWP::UserAgent;
use HTTP::Cookies::Netscape;

my $cookies = HTTP::Cookies::Netscape->new(
    hide_cookie2 => 1, 
    file => "$ENV{HOME}/.cookies.txt",
    autosave => 1
    );

my $browser = LWP::UserAgent->new(
    env_proxy => 1,
    autocheck => 1,
    cookie_jar => $cookies,
    agent => "get-jsessionid.pl/1.0"
    );

$browser->env_proxy();

my $response = $browser->get( 'http://www.linkedin.com' );
if ($response->is_success)
{
    $cookies->scan(sub 
                   {
                       if ($_[1] eq 'JSESSIONID')
                       {
                           print "$_[1] @ $_[4] = $_[2]\n";
                       };
                   }
        );
}
else
{
    die $response->status_line;
}

:

JSESSIONID @www.linkedin.com = "ajax: 11122233344455556667"

+1

Source: https://habr.com/ru/post/1742331/


All Articles