1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

gooブログにあるブログの全エントリーを wget でリップしたい場合のTIPS

Last updated at Posted at 2025-04-21

(この記事では、 Linux Mint 22.1 にインストールした GNU Wget 1.21.4 built on linux-gnu. を端末エミュレーターで使っています。)
goo ブログが今年 2025/11/18 に終了すると発表されました。
https://stysk.com/posts/2024/04/01/download_entire_website_using_wget/
を参考にして、

$ cd ${HOME}/site-rips/
$ wget --no-check-certificate -m -np -k -p -b -e robots=off -w3 [リップしたいブログのURI。]

というコマンドでブログ全体をダウンロードしようとすると、 [リップしたいブログのURI。] が

https://blog.goo.ne.jp/(ブログID)

で、最後に / がつかないため、 -np オプションで、親ディレクトリーをダウンロードしないよう指定しても、元サイト自体が https://blog.goo.ne.jp/ 直下のページと wget に認識されるので、 blog.goo.ne.jp 全体をダウンロードしようとしてしまい、リップしたいブログのエントリー全てをダウンロードしないまま、他のブログに行ったりしてしまいます。
なので、 [リップしたいブログのURI。] の代わりに、

https://blog.goo.ne.jp/(ブログID)/e/(あるエントリーのID。1個で多分良い。)

という構造の、リップしたいブログのあるエントリーのURIをダウンロード元の1個として指定して、

$ wget --no-check-certificate -m -np -k -p -b -e robots=off -w3 https://blog.goo.ne.jp/(ブログID)/e/(あるエントリーのID。1個で多分良い。)

とコマンドを打つと、リップしたいブログの各エントリーだけクロールしてくれます。
-p オプションは、HTMLを表示するのに必要なすべての画像等も取得するもののようですが、ブログエントリーの画像は blogimg.goo.ne.jp にあるために、直接ダウンロードされない模様です。
しかしながら、

perl -nle 'my @l = split /\"/;foreach my $line(@l){print $line if($line =~ m{^https://blogimg.goo.ne.jp/})}' (ブログエントリーのダウンロードされているディレクトリー)/* | sort -u | perl -nle 'my $line = $_;s#^https://##;print $line if(!-f $_);' | wget -x -i - -c

で、ブログの各エントリーに投稿された画像のURIを抽出してダウンロードできます。(ダウンロードするディレクトリはお好みで。移動してからコマンドを打つといいでしょう。)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?