in reply to Re^2: Mechanize cookie jar update?
in thread Mechanize cookie jar update?
Er, did you read the POD for HTTP::Cookies? I think you'll have to clear that cookie and put it back in the right way; i.e., not as a string but as an array of elements. That said, this turns out to not be so trivial as none of the cookie modules seems to parse strings correctly...? So unless someone has something more terse, this is what I'd do-
use WWW::Mechanize; use HTTP::Cookies; my $mech = WWW::Mechanize->new(); my $cookie_jar = HTTP::Cookies->new( autosave => 1, file => "/your/cookies.txt" ); # $cookie_jar->clear(); $mech->cookie_jar($cookie_jar); $mech->agent_alias('Windows IE 6'); $mech->get("http://www.amazon.com"); my $self_enclosed_callback = sub { my ( $version, $key, $val, $path, $domain, $port, $path_spec, $secure, $expires, $discard, $extra ) = @_; # Remove the currently iterating cookie from the jar. # NB: this might be dangerous! Seems to work though. $cookie_jar->clear( $domain, $path, $key ); # Now change domain, just for example. $domain =~ s/\.com\z/.org/; $cookie_jar->set_cookie( $version, $key, $val, $path, $domain, $port, $path_spec, $secure, $expires, $discard, $extra ); }; # Before our callback. print $cookie_jar->as_string, "\n"; $cookie_jar->scan( $self_enclosed_callback ); # After our callback. print $cookie_jar->as_string, "\n";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Mechanize cookie jar update?
by AV-2 (Novice) on Apr 05, 2008 at 05:00 UTC | |
|
Re^4: Mechanize cookie jar update?
by Anonymous Monk on Apr 07, 2008 at 13:34 UTC | |
by Your Mother (Archbishop) on Apr 07, 2008 at 15:45 UTC |