2011-03-20 13 views
2

나는 하루 종일이 질문에 답변했습니다.Perl 쿠키가 작동하지 않습니다.

저는 LWP :: UserAgent 및 HTTP :: Cookies와 함께 Perl을 사용하고 있습니다.

내 문제는 쿠키 기반 연령 확인을 통과 할 수 없다는 것입니다.

age_check 
1 
example.com/ 
1088 
3354512128 
30140182 
2646218624 
30139981 

모든 :

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

사이트가이 브라우저에 의해 저장된 쿠키가

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); 
} 

자바 스크립트와 쿠키를 설정하는 것입니다 : 펄에서

나는이 코드를 사용 내가 뭘 잘못하고 있는거야?

미리 감사드립니다.

답변

1

set_cookie 전화와 관련된 두 가지 문제점이 있습니다. 첫째, 도메인은 슬래시가없는 ".example.com"이어야합니다. 슬래시는 path 매개 변수에 지정됩니다. 둘째, path_spec 매개 변수의 값이 누락되어 있으므로 discard (0)에 지정한 값이 maxage에 사용되고 있으므로 쿠키가 만료됩니다.

+0

나는이 변경되었습니다. 고마워, – perlbeginner

+0

당신은 마킹을 고려해 볼 수 있습니다 그렇다면 올바른 답변입니다. –

0

(업데이트 :. 꽤 지점을 놓친)

난 당신이 정말보고 하루 종일하지 않았다 바랍니다. :(LWP::UserAgent JavaScript에 대한 구글의 첫 번째 결과는 뒤통수 때리는 웃긴를 제공하는 Handling Javascript with LWP::UserAgent : 그것은 자바 스크립트를 지원하지 않는 몇 가지 옵션이 있지만이 있습니다

CPAN에 확인 Mechanize JavaScript 그것은 WWW::Mechanize::FirefoxWWW::Mechanize::Plugin::JavaScript에 이르게 있습니다.... 또한 조금 까다 롭습니다하는 WWW::Selenium와 스크립팅하지만 정말 브라우저를 실행하기 때문에 완벽하게 브라우저를 에뮬레이트합니다

Upate은 :. 약 WWW::Scripter 실제로 플러그인 : 자바 스크립트 : MECH에 관한 것이다 잊어

+1

Me는 Javascript를 지원하지 않는다고 OP가 분명히 알고 있습니다. 그래서 그는 쿠키를 수동으로 설정하려고합니다. – friedo

+0

@friedo : 맞아. 나는 최근에 섭취가 느리다. : | – Ashley

관련 문제