teacup.掲示板をwgetで保存する1行スクリプト

nogajun
nogajun

3月ごろ、teacup.掲示板が2022/8/1で終了するというニュースが流れていました。

もう使っていないので「ふーん」と思ってましたが、つるんづマリーさんの掲示板に「掲示板っちゅうのんは引っ越せないことが判明。」という書き込みがありました。

掲示板っちゅうのんは引っ越せないことが判明。 投稿者:つるんづマリー 投稿日:2022年 7月 9日(土)04時38分15秒

大変長い間ありがとうございました。8月1日で全部消えます。1998年からなので24年くらい使っていました。大変お世話になりました。おもしろかったです。

確かにデータが消えるのは惜しい。そして、現存している一番古い2004年の書き込みを見ると…。これ、自分じゃないか!

ということでスクレイピングするスクリプトをPythonで書き始めたけど「先にwgetで保存じゃね?」と気がついたのでサラっと書いてみた。

URL='ここにURLを書く'; PAGES=ページ数; for i in $(seq ${PAGES}); do wget --page-requisites --recursive --level=1 --convert-links --timestamping --quiet --show-progress --adjust-extension --no-parent --random-wait --restrict-file-names=nocontrol,windows,ascii,lowercase --no-host-directories --span-hosts -e robots=off "${URL}?page=${i}"; done

使い方はURLのところにteacup.掲示板のURLを書いて、ページ数は掲示板をスクロールして一番下にある「ページ移動」のところに書いてある最大ページ数を指定します。

最初、ミラーのオプションだけ付ければ大丈夫かと思ったけど試すといつまで経っても終わらないので方針転換して1ページづつ保存するようにしたら、うまくいきました。保存してブラウザで閲覧できるところまで確認しています。困ってる人は、これで保存しておくといいのではないでしょうか。

追記 2022/7/30

Mastodonで教えてもらったのでスクリプトに --span-hosts -e robots=off オプションを追加しました。

なんでも、新しめの掲示板だと画像を保存しているサーバーが別れているそうです。それで---span-hostsが必要になるけど、それだけだと画像サーバーはrobots.txtで弾いているので画像が保存できないそう。ということで、--span-hosts -e robots=offが必要になるそうです。

古い掲示板しか試してないので気づかなかったですよ…。ありがとうございます!