2016-08-30 5 views
1

특정 웹 사이트로 보내는 데 사용 된 HTTP 요청이 이제 리다이렉션되어 코드가 파손되었습니다. 쿠키가 리디렉션 된 도메인에서 더 이상 작동하지 않는다는 것을 알았습니다 (물론). LWP의 문서를 읽었지만 자동으로 쿠키를 보존/유지하는 관련 옵션을 찾지 못했습니다. 그것을 할 수있는 쉬운 방법이 있습니까?펄의 LWP :: UserAgent를 사용하여 리디렉션 중 쿠키를 유지하는 방법?

참고 사항 :이 동작은 Python의 Requests 클래스를 사용하여 기본적으로 작동합니다.

+1

WWW :: Mechanize는 LWP :: UserAgent의 하위 클래스이며, 모든 하위 레벨 작업을 처리하여 '탐색'할 수 있습니다. –

+1

WWW :: Mechanize가 훌륭하지만 LWP :: UserAgent보다 무거 우므로 과잉 공격 일 수 있습니다. 실제로 유스 케이스에 달려있다. – simbabque

+0

브라우저에서 어떻게 처리합니까? 첫 페이지에서부터 최종 페이지까지 리디렉션을 통해 모든 요청과 응답의 헤더를 검사하고 쿠키를 자세히 살펴 보시기 바랍니다. 그것을 보지 않고, 내가 믿는 여기에서 도울 것이 어려울 것입니다. 솔루션은 쿠키 항아리에 도달하고 쿠키 도메인을 약간 변경하는 것처럼 간단 할 수 있습니다. – simbabque

답변

2

다음은 LWP :: UserAgent에 대한 쿠키 지원을 추가합니다.

my $ua = LWP::UserAgent->new(cookie_jar => {}); 

브라우저에서와 마찬가지로 응답에서 반환 된 쿠키가 이후 일치하는 요청과 함께 보내집니다.

+0

이것은 문제를 해결할 수 없습니다. – papaiatis

+0

@papaiatis, 왜 안 되니? – ikegami

관련 문제