2010-07-28 8 views
2

IE에서 usatoday.com을 방문하면 임시 인터넷 파일 폴더에 쿠키 파일이 자동으로 만들어집니다. 하지만 왜 다음 Perl 스크립트는 아무 것도 캡처하지 못합니까? amazon.com, google.com과 yahoo.com 같은 일부 다른 사이트의 경우왜 내 Perl 스크립트에서 쿠키 값을 인쇄 할 수 없습니까?

use WWW::Mechanize; 
use strict; 
use warnings; 

my $browser = WWW::Mechanize->new(); 
my $response = $browser->get('http://www.usatoday.com'); 
my $cookie_jar = $browser->cookie_jar(HTTP::Cookies->new()); 
$cookie_jar->extract_cookies($response); 
my $cookie_content = $cookie_jar->as_string; 
print $cookie_content; 

는 스크립트가 잘 작동하지만, 적어도 나에게 보인다 usatoday.com 또한 브라우저에 쿠키 정보를 전송, 왜 오전 다른 결과가 있습니까? 내가 빠진 것이 있습니까?

아이디어가 있으십니까? 감사!

+0

엄격한 사용; 사용 경고; $ cfie_content "명시 적 패키지 이름이 필요합니다"때문에 "전역 기호"로 인해 컴파일 오류가 발생합니다. 내 $ cookie_content = $ cookie_jar-> as_string으로 정정하십시오. –

+0

감사합니다. 나는 그 요지를 본다. – Mike

답변

3

UsaToday는 Javascript를 사용하여 쿠키를 설정합니다. WWW :: Mechanize는 Javascript를 구문 분석하거나 실행하지 않습니다.

쿠키를 사용하여 사이트를 크롤링해야하는 경우 http://i.usatoday.net/_common/_scripts/gel/lib/core/core.js 및 기타 JS 파일을 분석하여 정확하게 쿠키를 만든 방법을 결정하고 프로그래밍 방식으로 직접 쿠키를 만들 수 있습니다.

+0

포인터 주셔서 감사합니다. Win32 :: IE :: Mechanzie가 작동하는지 보겠습니다. – Mike

관련 문제