Perl5 및 LWP :: UserAgent를 사용하여 사이트에 액세스하려고합니다. 그러나 연결시 스크립트는 "403 access denied"메시지와 함께 사망합니다. 이상한 부분은 WWW :: Mechanize를 사용하여 완벽하게 작동하지만 가져 오기 코드가 정확히 동일하다는 것입니다. 일반적으로 나는 사용자 에이전트가 원인이라고 생각하지만 앞에서 언급했듯이 코드는 두 경우 모두 동일합니다.LWP :: UserAgent를 사용할 때 403 오류가 발생하지만 WWW :: Mechanize와는 일치하지 않습니다.
WWW :: Mechanize 및 LWP :: UserAgent가이 문제를 일으킬 수있는 요청을 처리하는 방법에는 차이가 있습니까?
다음은 두 가지 다른 접근법을 보여주는 샘플 코드입니다.
# Mechanize
use strict;
use warnings "all";
use WWW::Mechanize;
my $mech = WWW::Mechanize->new(
agent_alias => 'Mozilla/5.0',
show_progress => 1);
my $mech->get("www.foo.com");
# LWP
use strict;
use warnings "all";
use LWP::UserAgent;
my $ua = LWP::UserAgent->new(
agent_alias => 'Mozilla/5.0',
show_progress => 1);
my $r = $ua->get("www.foo.com");
'new '에 대한 올바른 매개 변수를'agent'라고하고, 기본 사용자 에이전트 문자열이 – Borodin
인 것을 말하면 좋을 것입니다. @Borodin : 당신 말이 맞습니다. 내 대답에이 정보를 추가했습니다. –
감사합니다. 사이트가'libwww-perl'에 대해 * Forbidden *을 반환하고 WWW-Mechanize에는 반환하지 않는 것이 이상하게 보입니다. 매우 효과적인 코드가 아닌 하드 코딩 된 제외 항목이어야합니다! – Borodin