SweetPotato::Plagger このページをアンテナに追加 RSSフィード

2007-10-20

[] Web::Scraperを使ってFlexComixブラッドのassetsをYahoo!コミック無料マガジン全般対応版に書き直した 00:53  Web::Scraperを使ってFlexComixブラッドのassetsをYahoo!コミック無料マガジン全般対応版に書き直した - SweetPotato::Plagger を含むブックマーク はてなブックマーク -  Web::Scraperを使ってFlexComixブラッドのassetsをYahoo!コミック無料マガジン全般対応版に書き直した - SweetPotato::Plagger  Web::Scraperを使ってFlexComixブラッドのassetsをYahoo!コミック無料マガジン全般対応版に書き直した - SweetPotato::Plagger のブックマークコメント

以前作った↑を,Web::Scraperを使ってYahoo!コミック無料マガジン全般対応版に書き直した。

assets/plugins/CustomFeed-Script/yahoocomic.pl

#!/usr/bin/perl
use strict;
use warnings;
use utf8;

use URI;
use Web::Scraper;
use YAML;

my $mag = shift;
   $mag = "http://comics.yahoo.co.jp/magazine/${mag}_0001.html" unless $mag =~ m!^http://!;

my $s = scraper {
    process '//table[@cellspacing="4"][1]//b', title => 'text';
    process '//table[@cellpadding="4" and .//img and count(.//tr)=4]',
      'comic[]' => scraper {
        process '//tr[1]//img',   icon   => ['@src', sub { +{ url => $_->as_string } } ];
        process '//tr[2]//a',     link   => ['@href', sub { $_->as_string } ];
        process '//tr[2]//a/b',   title  => 'text';
        process '//tr[3]//small', author => ['text', sub { (/(.*?)\s*$/)[0] } ];
        process '//tr[4]//small', body   => 'text';
        result qw/icon link title author body/;
      };
    result qw/title comic/;
};

my $res = $s->scrape(URI->new($mag));

binmode STDOUT, ':utf8';
print YAML::Dump +{
    title => $res->{title},
    link  => $mag,
    entry => $res->{comic},
};

config.yaml

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: 'script:/path/to/yahoocomic.pl blood'
        - url: 'script:/path/to/yahoocomic.pl flare'
        - url: 'script:/path/to/yahoocomic.pl weeklyyj'
        - url: 'script:/path/to/yahoocomic.pl fang'
        - url: 'script:/path/to/yahoocomic.pl gumbo'
        - url: 'script:/path/to/yahoocomic.pl marjong'
        - url: 'script:/path/to/yahoocomic.pl sangokushi'
        - url: 'script:/path/to/yahoocomic.pl essay'

  - module: CustomFeed::Script

  - module: SmartFeed::All
    config:
      title: Yahoo!コミック > 無料マガジン
      link: http://comics.yahoo.co.jp/magazine/
トラックバック - http://plagger.g.hatena.ne.jp/SweetPotato/20071020