2014-03-27 288 views
0

我有一个URL,当请求该URL时,它开始下载一个.zip文件。 Zip包含PDF文件。使用perl从url下载zip文件

我曾尝试与WWW ::机械化,zip文件如何产生,但是当试图打开PDF文件时,它给我的错误一样

my $mech = WWW::Mechanize->new; 
$URL = "http:...."; 
my $filename = "test.zip"; 
$mech->get($URL,":content_file" => "$filename",); 

“已经损坏不支持的文件类型或文件”在这帮助我。

+0

你想解压ZIP文件吗? – reinierpost

+0

@Zaid - 我试图将zip文件下载到本地目录 – Swaiya

回答

2

你可以做$mech->get($url)得到一个URL,然后接收原始内容与content方法:

printf "ct=%s len=%d\n", $mech->ct(), length($mech->content(raw => 1)); 

稍后,可以使用这个缓冲区来解压你的拉链,例如:

my $z = new IO::Uncompress::AnyUncompress(\$mech->content(raw => 1)) or die "Cant uncompress: [email protected] $!"; 
+0

我想下载zip文件(从url)到本地目录中。通过使用我的代码,我可以下载zip文件(从该url)到本地目录中。手动解压时,无法打开PDF文件。 – Swaiya

+0

@Swaiya当然,你可以将内容写入磁盘,而不是解压缩 – PSIAlt

0

下面的代码正在工作。 $mech->ct是“应用程序/邮编”。所以用.zip格式保存文件内容。现在我可以将zip下载到本地目录中,下载完成后,我可以手动解压缩/查看zip文件中的内容,而不会出现任何错误。

$mech = WWW::Mechanize->new; $URL="http://www......"; $mech->get($URL); $mech->save_content("test.zip");

感谢您的帮助。