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

3月ごろ、teacup.掲示板が2022/8/1で終了するというニュースが流れていました。
- 【重要なお知らせ】teacup. byGMOのサービス終了につきまして※追記あり(2022/3/25)(3月01日 14時00分) - 掲示板ならteacup.無料レンタル掲示板 byGMO: https://www.teacup.com/information/view?id=243 ( InternetArchive )
もう使っていないので「ふーん」と思ってましたが、つるんづマリーさんの掲示板に「掲示板っちゅうのんは引っ越せないことが判明。」という書き込みがありました。
掲示板っちゅうのんは引っ越せないことが判明。 投稿者:つるんづマリー 投稿日: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
が必要になるそうです。
古い掲示板しか試してないので気づかなかったですよ…。ありがとうございます!