获取zip / rar结构而无需完全下载

时间:2014-02-28 15:39:55

标签: web zip rar

是否可以在没有完全下载的情况下了解网站上的内部存档内容? 例如,我想知道里面有pdf文件的位置。如果是的话,我会下载这样的zip / rar,如果没有 - 我会跳过它。 那么,是否可以获得存档的一小部分并解压缩文件夹/文件结构?

2 个答案:

答案 0 :(得分:2)

是的,这是可能的,但我认为这还取决于您下载的服务器。您需要使HTTP range requests获取您要求的数据。

对于ZIP文件,您需要获取文件末尾的所有中央目录记录。您可以通过获取足够的最后数据并查找中心目录记录结束(EOCD)来完成此操作。如果没有注释,这应该是以0x06054b50开头的最后22个字节。此记录相对于归档的开头具有中心目录开始位置的偏移量。然后,您确定是否已在第一次抓取中下载了所有数据,或者是否需要再次抓取更多数据。之后,您只需要解释中心目录文件头,看看ZIP中是否有PDF文件。有关文件格式的信息可以在Wikipedia page或其中一个参考文献中找到。

对RAR文件执行相同操作将更加困难,因为没有一个地方可以从中获取所有元数据。您需要检查遍布RAR的文件头块。如果文件只有一个归档文件,您可以抓住前X个字节并检查。请查看RAR TechNote.txt,了解如何解析RAR文件。

我为RAR文件做了同样的事情,但后来基于NZB文件从Usenet完成。生成的RAR元数据收集在SRR file内。您可以在pyReScene项目中找到该代码和其他与RAR相关的代码。从HTTP执行相同操作会更容易,因为您可以忽略yEnc编码内容,并且可以更精确地选择字节范围。

答案 1 :(得分:0)

除非您可以在远程站点上执行命令。如果你可以ssh你可以运行更少的东西或解压缩标志不解压缩,但只是得到你可以grep的输出。

我怀疑你在做什么,你必须下载它并在本地做,但我可以站得更正。

它的价值,一旦下载,你可以偷看它而不解压缩它 例如  unzip -l zipfile
要么 less zipfile