anjia / blog

博客,积累与沉淀
106 stars 4 forks source link

pywb #6

Open anjia opened 5 years ago

anjia commented 5 years ago

pywb

https://pywb.readthedocs.io/en/latest/

Webrecorder pywb 是 python 的一个功能完备的、高级 web 归档捕获和重播框架。它提供了命令行工具,高保真 Web 存档访问。版本 2.0

pywb 是功能完备的 web archive replay 系统,也叫 wayback machine,提供 replay, view, archived。

pywb 有很多命令行,先来看两个入门的

想要创建一个 WARC 文件,可查看 Creating a Web Archive

Command-Line Apps

安装了 pywb tool-suite 之后,就能用下面的 command-line apps 了。所有的 serve 工具都有不同的默认端口,当然你也可以覆盖它。

Configuring the Web Archive

pywb 提供了一种可扩展的 YAML , 基于配置格式,通过 config.yaml, 在每一个 web archive 的根目录。

https://pywb.readthedocs.io/en/latest/manual/configuring.html#configuring-pywb

  1. Framed vs Frameless Replay
    • 要 archived web content, pywb 支持不同的 modes
    • Frame Replay:
      • archived content 被加载到一个iframe里 actual content
      • top frame UI 提供了 info 和 metadata top frame url
    • Frameless Replay
      • archived content 直接加载,banner UI 被诸如到页面里
    • 如何选择:
      • 鉴于安全问题,在 framed 模式下运行 pywb【因为恶意(malicious)站点可能修改 banner】
      • 某些情况,frameless replay 是合适的(appropriate)
    • 也可以禁用 framed replay
    • 也支持 HTTP/S proxy mode
  2. 目录结构
    • pywb系统自动访问和管理web archive collections-(遵循定义的目录结构)
    • 配置
      • 默认配置 pywb/default_config.yamld
      • 自定义配置 config.yaml
    • 路径
      • index_paths 定义了 index files 的子目录,并决定每个archive collection的内容
        • index files 通常包含到 WARC file 的指针
      • archive_paths 指定 pywb 如何解析在index里列出的 WARC 文件
        • 可配置多个
  3. etc.

HTTP/S Proxy Mode Access

在没有客户端URL重写的情况下,提供可能更好的重放。 通过 --proxy,即 wayback --proxy my-web-archive

servo-warc-tests

sudo pip3 install pywb  --user

## 1. 运行已经存在的
wayback --proxy WBEZ --port 8321
proxychains4 /Users/anjia/quantum/servo/mach run -r --certificate-path proxy-certs/pywb-ca.pem https://www.wbez.org/

## 2. 录制自己的
wb-manager init 360
wayback --proxy 360 --live --proxy-record --autoindex --port 8321

proxychains4 /Users/anjia/quantum/servo/mach run -r --certificate-path proxy-certs/pywb-ca.pem http://localhost:8321/360/record/https://www.360.cn/

proxychains4 /Users/anjia/quantum/servo/mach run -r --certificate-path proxy-certs/pywb-ca.pem https://www.360.cn/

## 3. 测试 
wayback --proxy 360 --port 8321
proxychains4 /Users/anjia/quantum/servo/mach run -r --certificate-path proxy-certs/pywb-ca.pem https://www.360.cn/

e.g.

# 运行一个已存在的 archive
wayback --proxy WBEZ --port 8321 
# WEBZ 是一个已经存在的文件夹,也称为 Collection
# --port 8321 是配置的端口,在 proxychains.conf 里

## 就可以配置浏览器 Proxy Settings 到特定的端口了,再加载特定的 url,就会加载最新的 archive copy 了
wayback --proxy my-web-archive  # 启动pywb,开启代理模式访问

proxychains4 ${SERVO_DIRECTORY}/mach run -r --certificate-path proxy-certs/pywb-ca.pem https://www.wbez.org/
proxychains4 ./mach run -r --certificate-path proxy-certs/pywb-ca.pem https://www.wbez.org/

## other
wayback --record --live -a --auto-interval 10  #
http://localhost:8321/360/record/https://www.360.cn/  # 在浏览器中访问
anjia commented 5 years ago

Creating and viewing WARC web archives in Servo