2011-06-03 20 views
6

Perl & LWP kitabım var, ancak kullanıcı aracısı dizesini nasıl ayarlayabilirim? Ben burada yapmak gibi LWP::UserAgent kullanmak istiyorsanız,Kullanıcı Aracısı LWP ile nasıl ayarlanır?

use LWP::UserAgent; 
use LWP::Simple; # Used to download files 

my $u = URI->new($url); 
my $response_u = LWP::UserAgent->new->get($u); 
die "Error: ", $response_u->status_line unless $response_u->is_success; 

Herhangi öneri:

Bu elimdeki nedir? LWP cookbook kaynaktan

+0

Zaten iyi bir cevabınız var, ama gerçekten öğrenmek/kullanmak istediğinizden şüphelendiğim şey, iyi bir şey olan [WWW :: Mechanize] (http://search.cpan.org/perldoc?WWW::Mechanize) -LWP :: UA alt sınıfının çok daha fazla işlevsellik ile otomatikleştirildi ve sezgisel/basit hale getirildi. – Ashley

cevap

9

:

use LWP::UserAgent; 
    $ua = new LWP::UserAgent; 
    $ua->agent("$0/0.1 " . $ua->agent); 
    # $ua->agent("Mozilla/8.0") # pretend we are very capable browser 

    $req = new HTTP::Request 'GET' => 'http://www.sn.no/libwww-perl'; 
    $req->header('Accept' => 'text/html'); 

    # send request 
    $res = $ua->request($req); 
1

I LWP-isteğine geçen bir referans ile sınıflara çözelti söz LWP cookbook çözeltisi takdir.

akıllıca bir perl keşiş

demiş: the ole subclassing LWP::UserAgent trick

package AgentP; 
    use base 'LWP::UserAgent'; 
    sub _agent  { "Mozilla/8.0" } 
    sub get_basic_credentials { 
     return 'admin', 'password'; 
    } 

package main; 
    use AgentP; 
    my $agent = AgentP->new; 
    my $response = $agent->get('http://127.0.0.1/hideout.html'); 

    print $agent->agent(); 

giriş bazı kötü mizah, kullanım açıklamada, _agent geçersiz kılma ve güncellenmiş ajan baskı hattı ile revize edilmiştir.

İlgilendiğiniz için bonus malzeme: get_basic_credentials override ile sağlanan HTTP temel yetkisi, çoğu kişinin alt sınıflandırma çözümünü nasıl bulacağıdır. _methods kutsal veya bir şeydir; ama kaşıntı kaşınmıyor mu?

İlgili konular