ハテナのキーワードページのRSSはタイトルだけなので
http://d.hatena.ne.jp/keyworddiary/perl?mode=rss
を購買したんやけど、タイトルだけ表示であまりいけてないので、内容も含むようにRSSを修正したスクリプトを書いた。
重いので、ファイルキャッシュした。dreamhost制約で、memcached,FastMmapとか使えないっぽいので。
#!/usr/bin/perl use strict; use warnings; use URI; use LWP::UserAgent; use Web::Scraper; use XML::RSS; use CGI; use Data::Dumper; use Cache::File; my $cache = Cache::File->new( cache_root => '/tmp/hk', default_expires => '3600 sec' ); print CGI->header(-type=> 'application/rss+xml' ); my $value = $cache->get( 'hk' ); if( defined $value ) { print $value; } else { my $ua = LWP::UserAgent->new(); my $response = $ua->get('http://d.hatena.ne.jp/keyworddiary/perl?mode=rss'); my $hatena = scraper { process "div.body" , description => 'HTML', }; if( $response->is_success ) { my $original_rss = $response->content; my $rss = XML::RSS->new(); $rss->parse( $original_rss ); foreach my $item ( @{ $rss->{items} } ) { my $res = $hatena->scrape( URI->new($item->{link}) ); $item->{description} = '<![CDATA[' . $res->{description} . ']]>'; } $cache->set('hk', $rss->as_string ); print $rss->as_string; } }