Warcprox - Web档案记录的MITM HTTP/S代理
Warcprox是一个专为网络存档应用设计的HTTP代理,它与Brozzler配合使用时,可以构建一个全面、现代且分布式的网页存档系统。这个强大的工具将流量记录到磁盘,并以Web ARChive (WARC) 文件格式存储,这种格式是Web档案的标准,可以被诸如OpenWayback和pywb这样的回放软件所使用。
项目介绍
启动Warcprox很简单,只需要Python 3.4或更高版本,通过pip安装后运行命令即可。该代理不仅能处理普通的HTTP流量,还能利用"中间人"(Man-in-the-middle)技术捕获并存档加密的HTTPS流量,从而克服了普通HTTP代理无法读取加密数据的问题。
项目技术分析
Warcprox的核心功能是其MITM机制。对于HTTPS请求,它生成公共密钥证书,展示给客户端,然后建立加密连接。之后,它与远程服务器建立正常的HTTPS连接,解密、存档并重新加密双向传输的数据。由于不依赖信任的CA签发证书,因此在配置Warcprox作为浏览器代理时,会触发安全警告。为了有效使用,需要禁用证书验证或者将Warcprox生成的CA证书添加为受信证书。
此外,Warcprox还提供了API,允许查询运行中的实例信息、写入WARC记录以及控制代理设置。它支持通过HTTP请求头进行参数调整,并具备去重功能,避免重复抓取相同内容。存档统计信息可用于限制和软限制管理。
应用场景
Warcproxy适用于多种场景:
- 网页存档 - 对网站进行长期保存,以便将来查看或分析。
- 数据挖掘 - 让研究人员能够查看特定历史时期的网页状态。
- 合规性要求 - 对于需要保存所有交互记录的行业,如金融和医疗,提供了一种合规的解决方案。
- 隐私保护 - 在需要对用户浏览行为进行匿名化处理的场合,可捕获但不保留原始数据。
项目特点
- HTTPS支持 - 通过中间人技术捕获并存储加密的HTTPS流量。
- 去重功能 - 通过计算内容的哈希值进行高效去重,减少不必要的存档空间占用。
- 多线程设计 - 采用多线程架构,提高性能,确保资源有效利用。
- 灵活扩展 - 支持插件,可根据需求编写自定义处理器。
- API接口 - 提供丰富的API,方便集成和控制。
总结来说,Warcprox是一个强大而灵活的工具,无论是用于学术研究还是企业应用,都能为互联网内容的持久化提供有力支持。如果你需要对网络内容进行深度管理和存档,那么Warcprox无疑是一个值得尝试的优秀选择。