2014-03-27 276 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");

感謝您的幫助。