我有一份warc记录的清单。列表中的每一项都是这样创建的:
header = warc.WARCHeader({
"WARC-Type": "response",
"WARC-Target-URI": "www.somelink.com",
}, defaults=True)
data = "Some string"
record = warc.WARCRecord(header, data.encode('utf-8','replace'))现在,我使用*.warc.gz来存储这样的记录:
output_file = warc.open("my_file.warc.gz", 'wb')写这样的记录:
output_file.write_record(record) # type of record is WARCRecord但是如何将lzma压缩为*.warc.xz呢?我曾经尝试用xz代替gz,当warc.open卡时,python3中的warc不支持这种格式。我已经找到了这个审判,但是我无法用以下方法保存WARCRecord:
output_file = lzma.open("my_file.warc.xz", 'ab', preset=9)
header = warc.WARCHeader({
"WARC-Type": "response",
"WARC-Target-URI": "www.somelink.com",
}, defaults=True)
data = "Some string"
record = warc.WARCRecord(header, data.encode('utf-8','replace'))
output_file.write(record)错误信息是:
TypeError:需要一个类似字节的对象,而不是“WARCRecord”
谢谢你的帮助。
发布于 2017-01-14 14:29:21
WARCRecord类有一个write_to方法,用于将记录写入文件对象。
您可以使用它将记录写入使用lzma.open()创建的文件。
https://stackoverflow.com/questions/41650048
复制相似问题