ワンライナーで画像収集

某掲示板まとめブログのエッチな記事に載っている画像を収集したいときに、Perl ではワンライナー、つまり1行のコマンドで書くことができます。例えば、女の子の太もも画像 ( http://metiss.blog92.fc2.com/blog-entry-142.html ) にリンクされている画像をカレントディレクトリにダウンロードしたければ以下のようなコマンドをたたくだけです。


  $perl -MLWP::Simple -MFile::Basename -e 'map{mirror($_,basename($_))} get($ARGV[0]) =~ m{<a.*?href="(http://[^"]+\.jpg)"}gi;' http://metiss.blog92.fc2.com/blog-entry-142.html

どうでしょう。ダウンロードできましたか?このワンライナーから以下のことがわかりますね。

とまぁ、どこまでワンライナーでできるかやってみたわけですが、 普通に使う分には、以下のようなスクリプトをパス通ったところに置いて、いつでも画像収集しておけるようにすればうはうはですね。


  #!/usr/bin/perl
  use strict;
  use LWP::Simple;
  use File::Basename;

  my $content = get(shift);
  my @l = $content =~ m{<a.*?href="(http://[^"]+\.jpg)"}gi;
  map{mirror($_,basename($_))} @l;

こんな感じで使えます。

./dl.pl http://metiss.blog92.fc2.com/blog-entry-142.html

Tipsというより便利スクリプトの紹介になってしまいしたことご了承くだされ。 さて、次のバトンは _33rpm さんに渡します。