以下是我使用的简单代码:
FooTest()
链接正常,因为我在浏览器中尝试它但不知何故它只返回use strict;
use warnings;
use LWP::Simple;
my $url = "http://automanga.com/uploads/manga/bleach/chapters/12/09.jpg";
my $file = "09.jpg";
my $rc = getstore($url, $file);
if (is_error($rc))
{
print "getstore failed with $rc\n";
}
状态。
感谢您对此的建议。
答案 0 :(得分:2)
本书 LWP和Perl (available legally for free online)是对LWP工具包的精彩介绍。特别是,Adding Extra Request Header Lines部分对您在这里遇到的问题进行了有用的讨论。
不幸的是,LWP :: Simple并不适合这项工作。您需要切换到LWP::UserAgent和HTTP::Request。然后,您可以在LWP :: UserAgent对象上使用agent()
方法,在HTTP :: Request对象上使用header()
来精确制作所需的请求。
更新:我在午休期间玩了一下这个。看起来他们在UserAgent字符串上阻塞了。只需将其更改为任何内容即可使其正常工作。
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->agent('Foo');
my $url = 'http://automanga.com/uploads/manga/bleach/chapters/12/09.jpg';
my $file = '09.jpg';
my $resp = $ua->get($url);
if ($resp->is_error) {
die $resp->status_line, "\n";
}
open my $fh, '>', $file or die $!;
binmode $fh;
print $fh $resp->decoded_content;