10

我发现自己不得不使用 python 脚本来访问 webarchive。

我拥有的是来自http://archive.org/details/archiveteam-fanfiction-warc-11的“megawarc”网络存档文件。我需要使用https://github.com/alard/megawarc上的 python 脚本来取消 megawac 。

我正在尝试运行“恢复”命令,并且我从第一个链接获得了所需的三个文件(FILE.warc.gz、FILE.tar 和 FILE.json.gz)。

我安装了 python 2.7 和 3.3。

- - - - - - - 更新 - - - - - - -

我已经运行了这两种方法..

python megawarc restore FILE

还有这个方法。。

确保在同一目录中拥有文件 megawarc 和 ordereddict.py,以及要转换的文件。将文件megawarc重命名为megawarc.py 在这个目录下打开一个python控制台

Type the following code (line by line) :

import sys
sys.argv = ['megawarc','restore','FILE']
import megawarc
megawarc.main()

使用python 2.7,这就是我得到的..

c:\Python27>python megawarc restore FILE
Traceback (most recent call last):
  File "megawarc", line 563, in <module>
main()
  File "megawarc", line 552, in main
mwr.process()
  File "megawarc", line 460, in process
self.process_entry(entry, tar_out)
  File "megawarc", line 478, in process_entry
entry["target"]["offset"], entry["target"]["size"])
  File "megawarc", line 128, in copy_to_stream
raise Exception("End of file: %d bytes expected, but %d bytes read." % (buf_size, l))
Exception: End of file: 4096 bytes expected, but 236 bytes read.

还有什么我想念的吗?

我在 c:\python27 中有以下文件

FILE.megawarc.json.gz

FILE.megawarc.tar

FILE.megawarc.warc.gz

megawarc

ordereddict.py

这是某种类型的损坏文件错误吗?有什么我想念的吗?

4

1 回答 1

6

在您提供的第二个链接上,有两个重要文件:

megawarc
ordereddict.py

可执行脚本是megawarc. 要运行它,您必须在 shell 中启动它

python megawarc restore FILE

或者,如果您使用的是基于 UNIX 的系统。你可以做

chmod +x megawarc

给 megawarc 脚本可执行属性,然后运行它

./megawarc restore FILE

如果您拥有的 3 个文件是、和,则此处FILE是您应该输入的实际名称。如果需要,您必须通过 3 个输入文件的公共前缀更改此参数。FILE.warc.gzFILE.tarFILE.json.gz

编辑 :

好的,如果您没有标准外壳来在命令行中启动脚本,我找到了一个可行的替代方案。你要做的是:

  • 确保您拥有这些文件 megawarc 并且ordereddict.py与您要转换的文件位于同一目录中。
  • 将文件重命名megawarc 为megawarc.py
  • 在这个目录中打开一个 python 控制台
  • 键入以下代码(逐行):

    import sys
    sys.argv = ['megawarc','restore','FILE']
    import megawarc
    megawarc.main()
    

这应该可行,我刚刚尝试过。希望它会有所帮助。

于 2013-06-12T12:08:49.267 回答