2011-06-03 5 views
6

मेरे पास पर्ल & एलडब्ल्यूपी पुस्तक है, लेकिन मैं उपयोगकर्ता-एजेंट स्ट्रिंग कैसे सेट करूं? अगर मैं LWP::UserAgent उपयोग करने के लिए की तरह मैं यहाँ करना चाहते हैं,एलडब्ल्यूपी के साथ उपयोगकर्ता-एजेंट कैसे सेट करें?

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; 

कोई सुझाव:

यह मैं क्या मिल गया है है?

+0

आपको पहले से ही एक अच्छा जवाब मिला है लेकिन मुझे संदेह है कि आप वास्तव में उपयोग/सीखना चाहते हैं [डब्ल्यूडब्ल्यूडब्ल्यू :: मैकेनाइजेशन] (http://search.cpan.org/perldoc?WWW::Mechanize) जो एक कुएं है - एलडब्लूपी :: यूए के बहुत से कार्यक्षमता स्वचालित और सहज ज्ञान युक्त/सरल के साथ उप-वर्ग। – Ashley

उत्तर

9
LWP cookbook से

:

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

मैं LWP cookbook समाधान जो LWP-अनुरोध करने के लिए उत्तीर्ण करने के लिए संदर्भ के साथ उपवर्गीकरण समाधान का उल्लेख है की सराहना करते हैं।

एक बुद्धिमान पर्ल भिक्षु बार कहा था: 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(); 

प्रविष्टि कुछ गरीब हास्य, उपयोग बयान, _agent ओवरराइड, और अद्यतन एजेंट प्रिंट लाइन के साथ संशोधित किया गया है।

रुचि के लिए बोनस सामग्री: get_basic_credentials ओवरराइड के साथ प्रदान की गई HTTP मूल लेख, जो कि अधिकांश लोगों को उप-वर्गीकरण समाधान मिलते हैं। _methods पवित्र या कुछ हैं; लेकिन यह खुजली खरोंच करता है ना?

संबंधित मुद्दे