将WARC转换为ZIM

warc2zim的Python项目详细描述


瓦尔齐姆

CIDocker Build StatuscodecovCodeFactor

warc2zim提供了一种将WARC文件转换为ZIM的方法,分别存储WARC有效载荷和WARC+HTTP头。在

此外,还将ReplayWeb.page添加到ZIM中,从而创建一个自包含的ZIM 可以在现代浏览器中呈现其内容。在

使用

示例:

warc2zim ./path/to/myarchive.warc --output /output --name myarchive.zim -u https://example.com/

上面将创建一个ZIM文件/output/myarchive.zim,并将https://example.com/设置为主页面。在

URL筛选

默认情况下,只包含来自主页面域和子域的url,例如,在上例中只有*.example.comurl。在

这允许过滤掉可能超出范围的url(例如广告、社交媒体跟踪器)。在

若要指定不同的顶级域,请为每个域使用--include-domains/-i标志,例如,如果主页面位于子域上,https://subdomain.example.com/但来自{}的所有URL都应包括在内,请使用:

^{pr2}$

要简单地包含所有URL,请使用--include-all/-a标志:

warc2zim myarchive.warc --name myarchive -a -u https://someother.example.com/page.html

其他选项请参见warc2zim -h。在

ZIM入口布局

WARC到ZIM的转换是通过将WARC(和HTTP)头从有效负载分离来执行的。在

对于response记录,WARC+HTTP报头存储在H/<url>下,而有效负载存储在A/<url>

对于resource记录,WARC头存储在H/<url>下,而有效负载存储在A/<url>下。(三个资源记录没有HTTP头)。在

对于revisit记录,WARC+可选HTTP报头存储在H/<url>下,而不创建有效负载记录。在

如果有效负载A/<url>长度为零,则忽略该记录,以符合不存储空记录的ZIM规范。在

重复uri

WARCs允许同一个URL有多个记录,而ZIM不允许。因此,ZIM中只存储第一次遇到的响应或资源记录, 忽略后续记录。在

对于回访记录,只有在指向其他URL时才会添加这些记录,并在响应/回访记录之后进行处理。同一URL的重访记录 总是被忽略。在

跳过所有其他WARC记录。在

i18n型

warc2zim有非常少的非内容文本,但仍然使用gettext到babel进行国际化。在

要添加新的区域设置(fr在本例中,只使用ISO-639-1):

  1. {cd22>你的区域设置:}
  2. 确保POT是最新的python setup.py extract_messages
  3. 更新您的区域设置目录python setup.py update_catalog
  4. 翻译PO文件(poedit是您的朋友)
  5. 编译更新的翻译python setup.py compile_catalog

许可证

GPLv3或更高版本,请参阅 LICENSE了解更多详细信息。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java标准API:在具有继承用户权限的树中查找实体   带有Hibernate和注释的java多对多自引用   java如何下载和安装Xugler?   java如何向JFrame JButton添加操作?   java如何安装自定义LAF?   java将旧对象的id分配给新对象将把它作为重复的@ManyToMany插入   java如何从WSDL生成/创建服务端点?   java使用基于iText Core的OpenPdf从pdf页面删除或更新添加的图像图标   java WeakHashMap,具有Long、Int或String等类型   java在JFrame中获取和更改值   java变量在扩展另一个类的类中不可见   地理定位Java和GeoLite数据库:如何使用GeoLiteCity。生产方式中的dat?   java类加载器应该能够解析和加载来自不同包的类吗?   java试图调用虚拟方法Volley Android Api   UDP数据报在Java中仅显示第一个字符