某掲示板まとめブログのエッチな記事に載っている画像を収集したいときに、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
どうでしょう。ダウンロードできましたか?このワンライナーから以下のことがわかりますね。
-M
で指定したモジュールの読み込み-e
で指定したスクリプトを実行@ARGV
に引数が入るとまぁ、どこまでワンライナーでできるかやってみたわけですが、 普通に使う分には、以下のようなスクリプトをパス通ったところに置いて、いつでも画像収集しておけるようにすればうはうはですね。
#!/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 さんに渡します。