根据标题将 WARC 文件拆分为块:WARC/1.0 Python

2024-04-09

我是编程新手,正在尝试通过将 WARC 文件拆分为块然后将每个块存储在字典中来处理它。

每个块应该以 WARC/1.0 标头开始,并由 3 个空行分隔。我还想删除前两段:

WARC/1.0
WARC-Type: warcinfo
WARC-Date: 2020-08-04T01:43:40Z
WARC-Record-ID: <urn:uuid:959ea654-33fd-466b-b1bf-f08aa8abe774>
Content-Length: 500
Content-Type: application/warc-fields
WARC-Filename: CC-MAIN-20200804014340-20200804044340-00045.warc.gz

isPartOf: CC-MAIN-2020-34
publisher: Common Crawl
description: Wide crawl of the web for August 2020
operator: Common Crawl Admin ([email protected] /cdn-cgi/l/email-protection)
hostname: ip-10-67-67-22.ec2.internal
software: Apache Nutch 1.17 (modified, https://github.com/commoncrawl/nutch/)
robots: checked via crawler-commons 1.2-SNAPSHOT (https://github.com/crawler-commons/crawler-commons)
format: WARC File Format 1.1
conformsTo: http://iipc.github.io/warc-specifications/specifications/warc-format/warc-1.1/

#把这里的所有东西都保留下来:

WARC/1.0
WARC-Type: request
WARC-Date: 2020-08-04T03:25:25Z
WARC-Record-ID: <urn:uuid:6c0b749a-4d02-4a77-ab93-9bc4ba094cdc>
Content-Length: 303
Content-Type: application/http; msgtype=request
WARC-Warcinfo-ID: <urn:uuid:959ea654-33fd-466b-b1bf-f08aa8abe774>
WARC-IP-Address: 104.254.66.40
WARC-Target-URI: http://00.auto.sohu.com/d/details?cityCode=450100&planId=1450&trimId=145372

我尝试使用生成器对块进行分组,但它返回一组(整个文件)。有没有一种简单的方法可以将它们分开?

我无法导入任何库。

任何帮助将不胜感激!!


到目前为止,完成此任务的最佳方法是使用 warcio 库,它知道如何正确地将 warc 文件解析为记录。

除此之外,我会将 warcio 代码复制到你的代码中(许可证是允许的。)

Warc 文件很复杂,使用经过充分测试且广泛使用的库是解析它们的正确方法。

如果您从 Common Crawl 下载数据,我还建议您查看我的 python 包 cdx_toolkit。它在底层使用 warcio,并处理下载步骤。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据标题将 WARC 文件拆分为块:WARC/1.0 Python 的相关文章