首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用python打开warc文件

用python打开warc文件
EN

Stack Overflow用户
提问于 2014-09-11 10:16:09
回答 2查看 2.5K关注 0票数 6

我试图使用以下链接中的工具箱使用python打开一个warc文件:http://warc.readthedocs.org/en/latest/

当使用以下内容打开文件时:

代码语言:javascript
复制
import warc
f = warc.open("00.warc.gz")

一切都很好,f对象是:

代码语言:javascript
复制
<warc.warc.WARCFile instance at 0x1151d34d0>

但是,当我试图使用以下方法读取文件中的所有内容时:

代码语言:javascript
复制
for record in f:
     print record['WARC-Target-URI'], record['Content-Length']

出现以下错误:

代码语言:javascript
复制
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工具箱或其他东西不支持我的warc文件版本吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-08 13:58:13

ClueWeb09数据集可用WARC0.18格式。然而,它有几个问题。有些记录是畸形

最常见的问题是WARC头中有一个额外的换行符。也有一些其他格式错误的头文件。

此外,它没有使用标准的\r\n行结束标记,这实际上是您的问题。

warc-clueweb库可以处理它。这是一个用于处理ClueWeb09 WARC文件的特殊python库。根据文件

只对原来的图书馆做了一些小小的修改。warc图书馆的原始文档仍然保存着

票数 6
EN

Stack Overflow用户

发布于 2016-07-08 07:10:38

是的,谢谢关于这个问题的睫毛解释。

实际上,集群-09中的一些记录是格式错误的。但是官方的warc库和上面推荐的git warc-clueweb库都存在一些问题。

此叉回购无法处理Clueweb12数据集,另一个问题是在处理每个.warc.gz文件时可能会丢失1-2个文档。

因此,我修改了一些代码,以支持Clueweb09和Cluewe12数据集。这是我的回购,它已经测试了1000亿页,我的warc工具分叉,并从warc库和官方回购。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25784825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档