我已经花了一整天的时间寻找这个问题的答案:
我将 Perl 与 LWP::UserAgent 和 HTTP::Cookies 一起使用。
我的问题是我无法通过基于 cookie 的年龄检查。
在 Perl 中我使用这段代码:
my $browser = LWP::UserAgent->new;
my $resp = $browser->get( $url, 'User-Agent' => 'MySpider/1.0' );
#Cookie Setup
my $cookies = HTTP::Cookies->new();
$cookies->set_cookie(1,'age_check', '1','/','.example.com/', 80, ,0,3354512128, 0);
$browser->cookie_jar($cookies);
网站正在使用 JavaScript 设置 Cookie
function saveSplash(domain) {
var expDate = new Date();
expDate.setTime(expDate.getTime()+(1*24*3600*1000));
setCookie("age_check", 1, expDate, '/', domain);
setCookie("screen_width", getScreenWidth(), expDate, '/', domain);
}
这是我的浏览器保存的 Cookie:
age_check
1
example.com/
1088
3354512128
30140182
2646218624
30139981
知道我做错了什么吗?
提前谢谢大家!
最佳答案
我发现您的 set_cookie
调用有两个问题。首先,域应该是 ".example.com"
没有斜杠;斜杠在路径参数中指定。其次,您缺少 path_spec 参数的值,因此您为 discard (0) 指定的值被用于 maxage,这会导致 cookie 过期。
关于javascript - Perl Cookie 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5365843/