はてなグループのダウンロード

年末にはてなグループが終了予定とのことですが、終了後にグループを閲覧可能にするかどうか未定とのことなので必要なグループはダウンロードしておくことにした。「従軍慰安婦問題を論じる」とか。

以下、結果は無保証なので自己責任で。

基本 wget でミラーするのだけど単純にミラーするとカレンダーを延々辿っていって終わらないので、そのあたりをスキップするようにしてみた。

wget -r -N -l 500 --no-remove-listing --page-requisites --no-parent --convert-links --adjust-extension -w 1 --random-wait --reject-regex '\?mode=reply$|\?mode=edit$|/calendar/?$|/calendar\?.*|/keyword/[0-9][0-9][0-9][0-9]-[0-1][0-9]-[0-3][0-9]|/captcha\?.*|/[0-9][0-9][0-9][0-9][0-1][0-9]$' グループのURL

--reject-regex オプションでスキップするURLのパターンを書いている。グループのカレンダー、日付のキーワード、日記のカレンダーは前後に辿るリンクを無限に辿ってしまうのでスキップ。ついでに掲示板の返信リンク、キーワードの編集リンク、captchaのリンクもスキップするようにした。

これで一応無限に辿ることなくダウンロードできた。リンクの変換も指定してあるのでローカルで閲覧もできるが、Firefox だと(?)掲示板が表示できない。というか、元のサイト上でも表示できない… どうも http://ad.hatena.ne.jp/js/google_afc.js の読み込みが終わらないのが原因らしいので、このスクリプトの読み込み部分を消してしまうことにした。

find ダウンロードしたフォルダ -type f | awk '{ printf("'\''%s'\''\n",$0) }'| xargs sed -i 's/<script language="JavaScript" src="http:\/\/ad.hatena.ne.jp\/js\/google_afc.js"><\/script>//g'

sed -i は指定されたファイルを上書きするので find で間違ったフォルダを指定しないように注意。

上のコマンドだと限定公開の日記はダウンロードできないのだけど、そのへんはwget のクッキー関係のオプションを使えばなんとかなるはず。