HTTP::Tinyを使う
Perl 5.14.0が出ました。気になるものとして、新しい標準モジュールに入った
HTTP::Tinyがあります。cpanmも使っているモジュールです。
標準モジュールで HTTPクライアントが簡単にかけると、助かる場面と
いうのは多いのではないでしょうか。
ソース
指定した URLから jpeg, gifのリンクを抜き出すというものです。
LWPを意識していると思われ、簡単なことをやるならほぼ同じです。
getの戻り値が HTTP::Responseのようなオブジェクトではなく、
ハッシュとして返ってくるというぐらいですかね。
#!/usr/bin/env perl use strict; use warnings; use HTTP::Tiny; my $url = shift or die "Usage $0 url\n"; my $ua = HTTP::Tiny->new( agent => 'sample ua', ); my $res = $ua->get($url); die "Can't download $url\n" unless $res->{success}; my $content = $res->{content}; while ($content =~ m{src="([^"]+)"}gxmsi) { my $src = $1; if ($src =~ m{\.(?:jpg|gif|jpeg|png)$}) { print "Image link: $src\n"; } }
実行
% perl http_tiny.pl http://d.hatena.ne.jp/syohex/ Image link: http://d.hatena.ne.jp/images/hatena_dg.gif Image link: http://d.hatena.ne.jp/images/diarydg.gif Image link: http://d.hatena.ne.jp/images/search_diarydg.gif Image link: http://d.hatena.ne.jp/images/searchdg.gif Image link: http://d.hatena.ne.jp/images/dot.gif Image link: http://d.hatena.ne.jp/images/hatenadg.gif Image link: http://d.hatena.ne.jp/images/dot.gif Image link: http://d.hatena.ne.jp/images/dot.gif Image link: http://b.st-hatena.com/images/entry-button/button-only.gif Image link: http://a1.twimg.com/profile_images/1151953348/gfx_normal.jpg Image link: http://b.st-hatena.com/images/entry-button/button-only.gif Image link: http://www.st-hatena.com/users/sy/syohex/profile.gif