下,我想下载一个.tar.gz文件(我会再解压缩....但后来这对。)下载一个压缩文件的Perl
我已经通过CPAN,猎杀#1,和Perl僧侣,和下面的这段下载文件&并将其存储在磁盘上(而不会删除它,直到你打的<>
进入。)
use LWP::UserAgent;
use File::Temp;
# Create temporary file, and delete on script-exit
my $tmp = File::Temp->new(TEMPLATE => 'hathiXXXX', SUFFIX=>'.tar.gz', UNLINK=>1);
my $uri = 'http://lucas.ucs.ed.ac.uk/test/hathi_full_20150701.txt.gz';
my $ua = LWP::UserAgent->new();
# Set the mime-type for a .tar.gz file
$ua->default_header('Accept' => 'application/x-gzip');
# ':content_file' => $tmp->filename is LWP magic to write to a file
my $res = $ua->get($uri, ':content_file' => $tmp->filename);
print $tmp->filename . "\n";
# Once you hit enter, the temporary file is deleted
<>;
使用wget
我得到一个文件,我可以解压缩。 上面的脚本保存了一个文件.....我无法打开。
是大小相同,具有相同的md5sum
校验,并显示具有相同的第一&最后64个字节都返回文件.....
有什么我错过了?我如何得到这个dang文件?
谢谢...
(Perl的:5.18.2; LWP :: UserAgent的:6.05;文件::温度:0.23)
为什么你不能打开它?你会得到什么错误? – Sobrique
tar:看起来不像tar档案 tar:跳到下一个标题 tar:由于以前的错误导致出现故障状态 – CodeGorilla
好的。你传递给tar的标志是什么?听起来你需要添加一个'z'。例如。 'tar xvfz'然后它会先用gunzip。如果它是相同的md5sum,那么它是相同的内容,所以你不必担心编码。 –
Sobrique