画像を集めるのは結構大変だったりするわけですが。
Yahoo!Pipesで複数のソーシャルブックマークから情報を収集していて面白いスクリプトを見つけました。
ゆーすけべー日記: Flickr からキーワードにマッチした写真を一括ダウンロードする Perl スクリプト「flickr_fetcher.pl」
最初は記事に書いてあるとおり使ってみようとしたのですが、コマンドプロンプトがShift_JISのせいなのか、キーワードを入れてもヒットしないのです。
Windowsを呪ってみても仕方がないので、スクリプトの中にキーワードを入れて使うことにしました。
どのように入れるか迷いましたが、とりあえず、BUILDに直接書き込みました。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
sub BUILD {
my ( $self, $args ) = @_;
unless ( $self->api_key ) {
if ( my $api_key = $ENV{FLICKR_API_KEY} ) {
$self->api_key($api_key);
}
else {
die "api_key is required\n";
}
}
unless ( $self->keyword ) {
$self->keyword('石原さとみ');
}
unless ( $self->dir ) {
$self->dir('satomi_ishihara');
}
my $xs = XML::Simple->new( KeepRoot => 1, keyattr => [] );
my $parser = WebService::Simple::Parser::XML::Simple->new( xs => $xs );
my $flickr = WebService::Simple->new(
base_url => "http://api.flickr.com/services/rest/",
param => { api_key => $self->api_key },
response_parser => $parser,
);
$self->_flickr($flickr);
}
|
これに伴い、keywordとdirのrequireをとりました。
1
2
3
4
|
has 'keyword' => ( is => 'rw', isa => 'Str' );
has 'dir' => ( is => 'rw', isa => 'Dir', coerce => 1 );
has 'api_key' => ( is => 'rw', isa => 'Str' );
has 'license' => ( is => 'rw', isa => 'Int' );
|
(わかったようにやっていますが、雰囲気でやってみて、結果としてうまくいっただけです。)
で、結果は以下のとおり。
いやいや。
便利なスクリプトをありがとうございます。