まとめて魚拓でarchive.todayを活用

たけおクラスタの皆様におかれましては、Webアーカイブサービスである、archive.today の浸透度は高く、相当活用されているかと思います。@lamaille_mayuko さん作の「即吊☆キャプチャー」も相当使われてますしね。(拙作のブックマークレットもご利用ありがとうございます)

そんななか、archive.today が大活躍する事件がありました。

先日の佐賀県知事選で落選した樋渡啓祐氏ですが、皆さんの知るとおり出馬に際してそれまで使っていたTwitterアカウント @hiwa1118 を削除して過去の発言をなかったことにしようとする動きがありました。(現在はアカウント復活の上、鍵アカに移項、ツイート削除)

 


こんなやり取りがありました。このときは、まゆこ女史のスーパーウルトラテクニックで、まだ削除されていなかったツイログがすべて魚拓として全保存され、発言の証拠として役立つことになりました。

そんなこんなで、あったらいいなと思っていた、Webサイトの全魚拓ツールですが、樋渡社中のオープンであらためてあったらいいなと思いましたので、スクリプトを書いてみましたのでご活用いただければと思います。

動作環境

  • Perl (CentOS 6 x86_64上のv.5.10.1にて作成)
  • 必要モジュール
    • HTTP::Request::Common
    • HTTP::Cookies
    • LWP::UserAgent
    • HTML::TreeBuilder

簡単な使い方
(コマンドヘルプのようなもの)

Usage: allarchive [options]... url

options:
  -quiet (-q)       quiet mode
  -count (-c)       show archived pages count
  -noarchive (-na)  no archive mode for test
  -exist (-e)       skip if already exist archived
  -pattern (-p)     pattern match for archive
     ex) allarcive -p=[0-9]{8} http://example.org/diary/
         archive http://example.org/diary/20150224
         skip    http://example.org/diary/20150224.html
  -search (-s)      pattern match for search
     ex) allarcive -s=month[0-9]{2} http://example.org/
         search  http://example.org/month02
         skip    http://example.org/year2015

とりあえず、サイトを丸ごと魚拓する場合は

$ allarchive http://example.org/ [Enter]

でOK。

オプションの説明

  • -q:応答メッセージを消す
  • -c:応答メッセージを消すけど、魚拓ったページ数のみ表示する
  • -na:ページ探索はするけど、実際には魚拓はしない。テスト用。
  • -e:既に魚拓ずみのページは魚拓しない
  • -p:魚拓するurlのパターンを正規表現で指定する
  • -s:探索するurlのパターンを正規表現で指定する

たとえば、twilogを全保存したい時はこんな感じです。

$ allarchive -p=date-[0-9]{6} \
-s=month-[0-9]{4}\|date-[0-9]{6} \
http://twilog.org/(username)/

ということでWeb上の証拠保全にお役立てください。


・追記
uaを設定した方がいいのではというご意見をいただきましたので、uaを設定してzipを再アップしておりまます。

・追記2
-qオプションの処理が漏れていたところがあったので修正してます。あと、正規表現を渡すオプションで、外側の ( ) を不要にしました。(v.1.03になってます)