我有Perl & LWP这本书,但是我如何设置用户代理字符串呢?
这就是我得到的:
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;如果我想像这里一样使用LWP::UserAgent,有什么建议吗?
发布于 2011-06-04 04:59:15
从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);发布于 2014-08-06 11:41:25
我很欣赏LWP cookbook解决方案,它提到了子类化解决方案,并顺便引用了lwp-request。
一位聪明的perl和尚曾经说过: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();该条目已修改为一些糟糕的幽默、use语句、_agent覆盖和更新的代理打印行。
感兴趣的人的额外材料: get_basic_credentials override提供的HTTP basic身份验证,这是大多数人找到子类化解决方案的方式。_methods是神圣的,但它确实让人发痒,不是吗?
https://stackoverflow.com/questions/6232504
复制相似问题