百度网盘批量下载下来的压缩包很有问题

2018-01-22 00:33:34 +08:00
 MagaFun

我看百度盘对我们这些不想花钱的人来说是用不了了。使用某个软件下载百度盘内分享的资源,用的是创建批量下载压缩包的原理。一个将近 10 GiB 的文件单独打了一个压缩包,解压出来只有 2 GiB 左右。7-zip,Bandizip 和 WinRAR 都没有办法解压出原文件。不知道大家有没有相似的经历。

4059 次点击
所在节点    问与答
10 条回复
lry527
2018-01-22 00:59:49 +08:00
用解压软件修复功能试试
MagaFun
2018-01-22 01:01:46 +08:00
@lry527 修复过了,也不行
privil
2018-01-22 01:08:04 +08:00
http://blog.sina.com.cn/s/blog_610787990102xcnv.html 用这里提供 python 脚本可以解压
ks3825
2018-01-22 01:27:06 +08:00
如果用百度云批量下载打包的压缩包内单文件大于 4G,无论怎么搞都会坏。

如果压缩包内没有文件超过 4G,但压缩包总大小超过 4G,可以用 WINRAR 的修复功能修复后解压。(其他软件修复无效)

如果压缩包小于 4G,可直接解压。

半年前我研究过是这样的,可能随着时间推移改变
ks3825
2018-01-22 01:32:18 +08:00
(捂脸)没看到楼上的回复,无视我好了
MajestySolor
2018-01-22 03:01:24 +08:00
老问题了,百度云的大体积压缩包经常是损坏的,要反复下好几次~
MagaFun
2018-01-22 04:58:36 +08:00
@privil 尝试了,报了如下错误,压缩包里有两个文件,都超过了 4G。

Traceback (most recent call last):
File "unzip_baidu.py", line 210, in <module>
ubz.Unpack(fname)
File "unzip_baidu.py", line 46, in Unpack
header = self.__parse_file_header(f.read(0x1E))
File "unzip_baidu.py", line 155, in __parse_file_header
h['file_tag'] = i4.unpack_from(header[0:4])[0]
struct.error: unpack_from requires a buffer of at least 8 bytes
MagaFun
2018-01-22 05:00:12 +08:00
@ks3825 估计我这个情况,还是老老实实 IDM 开 32 个线程吧
loading
2018-01-22 08:40:01 +08:00
我 linux 报错,windows 就好了?!??!!!
msg7086
2018-01-22 09:01:18 +08:00
10G 变 2G 看着就是 32 位溢出。想办法无视掉文件长度字段就可以正常解压了,说白了 hack 一把梭。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/424776

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX