10

Web アーカイブにアクセスするには、Python スクリプトを使用する必要があることに気付きました。

私が持っているのは、http://archive.org/details/archiveteam-fanfiction-warc-11の「megawarc」Web アーカイブ ファイルです。https://github.com/alard/megawarcにある python スクリプトを使用して、これを un-megawarc する必要があります。

「復元」コマンドを実行しようとしていますが、最初のリンクから必要な 3 つのファイル (FILE.warc.gz、FILE.tar、および FILE.json.gz) があります。

Python 2.7 と 3.3 の両方がインストールされています。

- - - - - - - アップデート - - - - - - -

私はこの方法の両方を実行しました..

python megawarc restore FILE

そしてこの方法..

変換したいファイルと同じディレクトリにファイル megawarc と ordersdict.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

あなたが提供した 2 番目のリンクには、2 つの重要なファイルがあります。

megawarc
ordereddict.py

実行スクリプトは、megawarc. 実行するには、シェルで起動する必要があります

python megawarc restore FILE

または、UNIX ベースのシステムを使用している場合。できるよ

chmod +x megawarc

megawarc スクリプトに実行可能プロパティを指定して実行するには

./megawarc restore FILE

ここでFILEは、3 つのファイルがFILE.warc.gzFILE.tar、および である場合に入力する必要がある実際の名前を示しますFILE.json.gz。必要に応じて、3 つの入力ファイルに共通のプレフィックスでこのパラメーターを変更する必要があります。

編集 :

さて、コマンドラインでスクリプトを開始するための標準シェルがない場合に機能する代替手段を見つけました。あなたがしなければならないことは次のとおりです。

  • megawarc 変換するファイルとordereddict.py同じディレクトリにファイルがあることを確認してください 。
  • ファイルの名前megawarc をmegawarc.py
  • このディレクトリで python コンソールを開きます
  • 次のコードを (1 行ずつ) 入力します。

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

これはうまくいくはずです、私はちょうどそれを試しました。それが役立つことを願っています。

于 2013-06-12T12:08:49.267 に答える