はじめに
Webクローラ「Heritrix」のアウトプットが.warc.gzファイルなのだけど、
WARCファイルってなんやねん、ってなって調べたのをまとめとく。
WARCファイルとは?
ひとことで言うと、
- Webアーカイブの保存用ファイルフォーマット
- WARC は「
W
」eb 「Arc
」hiving に由来 - 国際標準機構(ISO)の国際規格ISO 28500:2009になってる
- Wayback などの WARC 形式に対応したツール使うとオリジナルサイトのように表示できる
ごめん、ひとことじゃなくなってた。
関連情報
もう少し詳しく知りたい方は下記サイトをご参考までどうぞ。
フォーマット化されているといっても、
なにか複雑な記述に変換されているわけではなくって、中身はただのテキストデータなので、
気になる人は直接テキストエディタなどで開いて見てみたらいいと思う。
それが一番理解が早い。
おまけ
解析する方法ないかな~と探していて、最初にみつけたのが
Python のライブラリだったので、紹介しておく。さすがでござる。
warc: Python library to work with WARC files
↑の Readme.rst にも書いてあるけど、ドキュメントもちゃんとあるよ。
warc: Python library to work with ARC and WARC files — warc 0.1 documentation
私も実際に動かしてみたけど、サクッと使えたよ。
@heavenshell 先生がサンプルコードくださった。ありがたく掲載させていただきますm(_ _)m
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import warc
def read(path):
f = warc.open(path)
for r in f:
print(r.payload.read())
if __name__ == '__main__':
read('./test_data/crlf_at_1k_boundary.warc.gz')
HTTP/1.1 200 OK
Connection: close
Date: Fri, 18 Feb 2011 23:32:58 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-Powered-By: UrlRewriter.NET 2.0.0
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 4680
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
</title>
以下略
ただ、HTMLの部分のみを取得するメソッドなどはなさそうなので、
それは自分で作らないといけないぽいな~。
(私はHTMLの部分だけを抜き出したかったので・・・。)
Java のライブラリとかも探してみたい。ありそう。
おわり。