我已经整天都在寻找答案了:
我正在将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参数的值,因此您为丢弃(0)指定的值将用于最大值,从而导致cookie过期。