2014-09-11 2 views
3

Я пытаюсь открыть файл Warc с питоном, используя набор инструментов по следующей ссылке: http://warc.readthedocs.org/en/latest/открыт ВАКР файл с питоном

При открытии файла с:

import warc 
f = warc.open("00.warc.gz") 

все в порядке и объект Р:

<warc.warc.WARCFile instance at 0x1151d34d0> 

Однако, когда я пытаюсь прочитать все в файле с помощью:

012 появляется
for record in f: 
    print record['WARC-Target-URI'], record['Content-Length'] 

следующая ошибка:

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/Users/xxx/anaconda/lib/python2.7/site-packages/warc/warc.py", line 390, in   __iter__ 
record = self.read_record() 
File "/Users/xxx/anaconda/lib/python2.7/site-packages/warc/warc.py", line 373, in read_record 
header = self.read_header(fileobj) 
File "/Users/xxx/anaconda/lib/python2.7/site-packages/warc/warc.py", line 331, in read_header 
raise IOError("Bad version line: %r" % version_line) 
IOError: Bad version line: 'WARC/0.18\n' 

Является ли это потому, что моя версия ВАКР файл не поддерживается Warc инструментов, я использую или что-то другое?

+1

Вот что говорит ошибка. – simonzack

ответ

4

Набор данных ClueWeb09 доступен в формате WARC 0.18. Однако у него есть несколько вопросов. Некоторые записи: malformed.

Наиболее распространенной проблемой является дополнительная строка новой строки в заголовке WARC. Есть также несколько случаев других искаженных заголовков.

Кроме того, он не использует стандартные маркеры конца строки, которые на самом деле являются вашей проблемой.

warc-clueweb library может справиться с этим. Это специальная библиотека python для работы с файлами WARC ClueWeb09. Согласно документации

Выполнены незначительные изменения в оригинальной библиотеке. Оригинальная документация библиотеки warc по-прежнему сохраняется

+0

Привет, спасибо за ваш ответ. Извините за задержку, но сейчас я отложил этот проект. Но я испытаю это, как только вернусь к нему. Еще раз спасибо. – user3383348

0

Да, спасибо за объяснение @eyelash об этой проблеме.

На самом деле некоторые записи в Clueweb-09 являются искаженными. Но официальная библиотека warc и выше рекомендованная git repo warc-clueweb library имеют некоторые проблемы.

Этот репортер fork не может обрабатывать набор данных Clueweb12, а другой проблемой является то, что он может пропустить 1-2 документа при работе с каждым файлом .warc.gz.

Итак, я изменил небольшой код для поддержки наборов данных Clueweb09 и Cluewe12. Вот мое репо, которое было проверено на 100 миллиардов страниц, my warc tools разветвлено и изменено с библиотеки warc-clueweb и официальным репо.

 Смежные вопросы

  • Нет связанных вопросов^_^