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

2007-06-10

[][][] scraper and upgrader 新文化 02:56  scraper and upgrader 新文化 - SweetPotato::Plagger を含むブックマーク はてなブックマーク -  scraper and upgrader 新文化 - SweetPotato::Plagger  scraper and upgrader 新文化 - SweetPotato::Plagger のブックマークコメント

出版業界紙・新文化の色々なコンテンツをPlaggerで。

assets/plugins/CustomFeed-Config/shinbunka_newsflash.yaml

トップページのニュースフラッシュ。

# author: SweetPotato
match: http://www\.shinbunka\.co\.jp/(?:index\.html?)?$
extract_xpath:
  title:   //span[@class='bold-midashi']/text()
  body:    //span[@class='bold-midashi']/../../../following-sibling::tr/td/p
  updated: //span[@class='bold-midashi']/../../../../../../following-sibling::tr/td/span
extract_after_hook: $data->{body} .= $data->{updated}

assets/plugins/CustomFeed-Config/shinbunka_joholog.yaml

情報掲示板

# author: SweetPotato
match: http://www\.shinbunka\.co\.jp/joholog\.html?$
extract_xpath:
  title:   //td[@width='600' and @bgcolor='#FAEBD7']/div[2]/b[1]/text()
  body:    //td[@width='600' and @bgcolor='#FAEBD7']/div[2]
  updated: //td[@width='600' and @bgcolor='#FAEBD7']/div[1]/font/text()
extract_after_hook: |
  $data->{body} .= $data->{updated};
  $data->{body} =~ s!<b.*?>.*?</b>.*?<br.*?>!!;

assets/plugins/Filter-EntryFullText/shinbunka_yell-rue.yaml

連載コラムルーエからのエール」。

# author: SweetPotato
custom_feed_handle: http://www\.shinbunka\.co\.jp/rensai/yell-ruelog\.html?$
custom_feed_follow_link: /rue\d+\.html?$
handle: http://www\.shinbunka\.co\.jp/rensai/yell-rue/rue\d+\.html?$
extract_xpath:
  title: //div[@class='bold-midashi']/text()
  body:  //div[@class='bold-midashi']/../../following-sibling::tr[2]/td
  date:  //div[@class='bold-midashi']/../../following-sibling::tr[2]/td/div/text()
extract_date_format: \(%Y/%m/%d\)
extract_date_timezone: Asia/Tokyo
extract_after_hook: $data->{body} =~ s!<td.*?>(.*)</td>!$1!

assets/plugins/Filter-EntryFullText/shinbunka_shuzainote.yaml

連載コラム取材ノート」。

# author: SweetPotato
custom_feed_handle: http://www\.shinbunka\.co\.jp/(?:shuzainote/)?shuzainotelog.*?\.html?$
custom_feed_follow_link: /\d+\.html?$
handle: http://www\.shinbunka\.co\.jp/shuzainote/\d+\.html?$
extract_xpath:
  title:  //h2
  body:   //h2/../../following-sibling::tr[2]/td
  author: //h2/../../following-sibling::tr[2]/td/p[@align='right'][1]/b/text()
  date:   //h2/../../following-sibling::tr[2]/td/p[@align='right'][1]/text()[last()]
extract_date_format: %Y/%m/%d
extract_date_timezone: Asia/Tokyo
extract_after_hook: |
  $data->{title} =~ s!<.*?>!!g;
  $data->{body} =~ s!<td.*?>(.*)</td>!$1!;
  $data->{date} = $1 if $data->{date} =~ m!(\d+/\d+/\d+)!;

assets/plugins/Filter-EntryFullText/shinbunka_henshucho.yaml

社長室

# author: SweetPotato
custom_feed_handle: http://www\.shinbunka\.co\.jp/(?:henshucho/)?henshucholog.*?\.html?$
custom_feed_follow_link: /hen\d+\.html?$
handle: http://www\.shinbunka\.co\.jp/henshucho/hen\d+\.html?$
extract_xpath:
  title:  //h2
  body:   //h2/../../following-sibling::tr[2]/td
  author: //h2/../../following-sibling::tr[2]/td/p[@align='right'][1]/b/text()
  date:   //h2/../../following-sibling::tr[2]/td/p[@align='right'][2]/text()
extract_date_format: %Y\x{FF0F}%m\x{FF0F}%d
extract_date_timezone: Asia/Tokyo
extract_after_hook: |
  $data->{title} =~ s!<.*?>!!g;
  $data->{body} =~ s!<td.*?>(.*)</td>!$1!;
  $data->{date} = $1 if $data->{date} =~ m!(\d+\x{FF0F}\d+\x{FF0F}\d+)!;

config.shinbunka.yaml

plugins:
  - module: Subscription::Config
    config:
      feed:
         - url: http://www.shinbunka.co.jp/
         - url: http://www.shinbunka.co.jp/joholog.htm
         - url: http://www.shinbunka.co.jp/rensai/yell-ruelog.htm
         - url: http://www.shinbunka.co.jp/shuzainotelog.htm
#        - url: http://www.shinbunka.co.jp/shuzainote/shuzainotelog001-030.htm
         - url: http://www.shinbunka.co.jp/henshucholog.htm
#        - url: http://www.shinbunka.co.jp/henshucho/henshucholog001-035.htm
  - module: CustomFeed::Config
  - module: Filter::ForcePermalink
  - module: Filter::EntryFullText
  - module: Filter::ForceTimeZone
    config:
      timezone: Asia/Tokyo

Filter::ForcePermalinkについては以下の記事を参照。

トラックバック - http://plagger.g.hatena.ne.jp/SweetPotato/20070610

2007-03-24

[][] upgrader for EFT 最後通牒 コミックス限定版 23:38  upgrader for EFT 最後通牒 コミックス限定版 - SweetPotato::Plagger を含むブックマーク はてなブックマーク -  upgrader for EFT 最後通牒 コミックス限定版 - SweetPotato::Plagger  upgrader for EFT 最後通牒 コミックス限定版 - SweetPotato::Plagger のブックマークコメント

最後通牒コミックス限定版情報ページを解析し,本文を取得する。

assets/plugins/Filter-EntryFullText/saigotsucho_gentei.yaml

日本語を使用しているので,UTF-8(BOMなし)で保存すること。

# author: SweetPotato
handle: http://comiclove\.at\.infoseek\.co\.jp/cgi-bin/inf8/inf8\.cgi\?mode=main&no=\d+$
extract: (<table width=100% .*?発売日: (\d{4}/\d{2}/\d{2}).*?)</table>\s*<br>
extract_capture: body date
extract_date_format: %Y/%m/%d
extract_date_timezone: Asia/Tokyo

config.saigotsucho_gentei.yaml

Filter::Ruleで新着情報のみを取得するようにする。

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: http://comiclove.at.infoseek.co.jp/cgi-bin/inf8/inf8.cgi?mode=menu
          meta:
            follow_link: no=\d+
  - module: CustomFeed::Simple
  - module: Filter::Rule
    rule:
      expression: $args->{entry}->title =~ /NEW!!/
  - module: Filter::EntryFullText

関連

トラックバック - http://plagger.g.hatena.ne.jp/SweetPotato/20070324

2007-03-17

[][] upgrader for EFT アキバ系.com  upgrader for EFT アキバ系.com - SweetPotato::Plagger を含むブックマーク はてなブックマーク -  upgrader for EFT アキバ系.com - SweetPotato::Plagger  upgrader for EFT アキバ系.com - SweetPotato::Plagger のブックマークコメント

アキバ系.comニュース本文を取得する。

assets/plugins/Filter-EntryFullText/akiba-k.yaml

# author: SweetPotato
handle: http://www\.akiba-k\.com/news/LatestNewsDetail\.do\?newsId=\d+$
extract: (<table width="630" border="0" cellpadding="0" cellspacing="2">.*?<div align="right">.*?<a.*?>(.*?)</a>.*?(\d{4}/\d{2}/\d{2}).*?)<table width="630" border="0" cellspacing="0" cellpadding="0">
extract_capture: body author date
extract_date_format: %Y/%m/%d
extract_date_timezone: Asia/Tokyo

config.akiba-k.yaml

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: http://www.akiba-k.com/news/LatestNews.do
          meta:
            follow_link: newsId=\d+
  - module: CustomFeed::Simple
  - module: Filter::EntryFullText
  - module: Filter::ResolveRelativeLink
トラックバック - http://plagger.g.hatena.ne.jp/SweetPotato/20070317

2007-02-07

[][][] scraper and upgrader CGIBOY日記帳  scraper and upgrader CGIBOY日記帳 - SweetPotato::Plagger を含むブックマーク はてなブックマーク -  scraper and upgrader CGIBOY日記帳 - SweetPotato::Plagger  scraper and upgrader CGIBOY日記帳 - SweetPotato::Plagger のブックマークコメント

断片部から移動。元の記事は削除し,はてブでフォロー。

CGIBOY日記帳を解析し,日付ごとにエントリ化する。そして本文を取得する。月ごと表示日ごと表示の両方に対応。

assets/plugins/CustomFeed-Config/cgiboy_diary.yaml

元のYAMLをXPath化。iconにはエモティコンをセット。エモティコンは存在しない場合もあるみたいだけど,その場合は何もセットされないっぽい。

# author: SweetPotato
match: http://diary\d*\.cgiboy\.com/[-\w]+/[-\w]+/$
extract_xpath:
  date: //table[not(@width)]//span/font/text()
  icon: //table[not(@width)]//img/@src
  link: //table[not(@width)]//a/@href
  title: //table[not(@width)]//a/font/text()
extract_date_format: %Y,%m,%d
extract_date_timezone: Asia/Tokyo
extract_after_hook: |
  use URI;
  ($data->{link}, $data->{icon}) = map {
    URI->new_abs($_, $args->{feed}->url)->as_string
  } ($data->{link}, $data->{icon});

assets/plugins/Filter-EntryFullText/cgiboy_diary.yaml

# author: SweetPotato
sub handle {
    my($self, $args) = @_;
    $args->{entry}->link =~ qr!^http://diary\d*\.cgiboy\.com/[-\w]+/[-\w]+/index\.cgi\?y=\d{4}&m=\d{1,2}(?:&d=|#)\d{1,2}$!;
}

sub extract {
    my ($self, $args) = @_;
    my $data;

    my $day = ($args->{entry}->link =~ /(?:&d=|#)(\d{1,2})$/)[0];
    if($args->{content} =~ m!<a name="$day">.*?(<TABLE cellSpacing=0 cellPadding=10 width=100% border=0>.*?</TABLE>)!s) {
        $data->{body} = $1;
    }

    return $data;
}

config.cgiboy_diary.yaml

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: http://diary.cgiboy.com/d01/sample/
        - url: http://diary2.cgiboy.com/0/sample/
  - module: CustomFeed::Config
  - module: Filter::EntryFullText
  - module: Filter::ResolveRelativeLink

[][][] scraper and upgrader FC2絵日記  scraper and upgrader FC2絵日記 - SweetPotato::Plagger を含むブックマーク はてなブックマーク -  scraper and upgrader FC2絵日記 - SweetPotato::Plagger  scraper and upgrader FC2絵日記 - SweetPotato::Plagger のブックマークコメント

断片部から移動。元の記事は削除し,はてブでフォロー。

FC2絵日記の絵日記(例えばサンプル絵日記)を解析し,日付ごとにエントリ化する。そして本文を取得する。

実はFC2絵日記はなんでもRSSが使えるんだけど,折角ということで。

assets/plugins/CustomFeed-Config/fc2diary.yaml

元のYAMLをXPath化。iconにはエモティコンをセット。

# author: SweetPotato
match: http://diary\d*\.fc2\.com/cgi-sys/ed\.cgi/[-\w]+/$
extract_xpath:
  date: //table[@border='0' and @cellpadding='0' and @cellspacing='2' and not(@width)]//font/text()
  icon: //table[@border='0' and @cellpadding='0' and @cellspacing='2' and not(@width)]//img/@src
  link: //table[@border='0' and @cellpadding='0' and @cellspacing='2' and not(@width)]//a/@href
  title: //table[@border='0' and @cellpadding='0' and @cellspacing='2' and not(@width)]//a/text()
extract_date_format: %Y/%m/%d
extract_date_timezone: Asia/Tokyo
extract_after_hook: |
  use URI;
  ($data->{link}, $data->{icon}) = map {
    URI->new_abs($_, $args->{feed}->url)->as_string
  } ($data->{link}, $data->{icon});

assets/plugins/Filter-EntryFullText/fc2diary.yaml

# author: SweetPotato
handle: http://diary\d*\.fc2\.com/cgi-sys/ed\.cgi/[-\w]+/\?Y=\d{4}&M=\d{1,2}&D=\d{1,2}$
extract_xpath:
  body: //table[@cellpadding='6' and @width='100%']

config.fc2diary.yaml

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: http://diary.fc2.com/cgi-sys/ed.cgi/sample/
  - module: CustomFeed::Config
  - module: Filter::EntryFullText
  - module: Filter::ResolveRelativeLink
トラックバック - http://plagger.g.hatena.ne.jp/SweetPotato/20070207

2007-01-15

[][][] scraper and upgrader とらのあな インフォメーション 00:10  scraper and upgrader とらのあな インフォメーション - SweetPotato::Plagger を含むブックマーク はてなブックマーク -  scraper and upgrader とらのあな インフォメーション - SweetPotato::Plagger  scraper and upgrader とらのあな インフォメーション - SweetPotato::Plagger のブックマークコメント

フィードが提供されるようになったので今後はそっちを使えばいいと思うよ。

EFTは引き続き使えると思う。思うってだけで確認はしてないけど。

とらのあな インフォメーションの3カラムの中央を解析し,トピックごとにエントリ化するCustomFeed::Config用のassetsと,フェア情報や『とらだよ。』『虎通』の本文を取得するEFT用のassets,およびプライズ情報の本文を取得するEFT

assets/plugins/CustomFeed-Config/toranoana_info.yaml

extract_after_hookがコメントアウトされている理由は次のエントリで。

# author: SweetPotato
match: http://www\.toranoana\.jp/info/(?:index\.html)?$
extract_xpath:
  title: //table[@class='topictable']//strong[@class='topictitle']
  icon: //table[@class='topictable']//div[@class='topicicon']/img/@src
  link: //table[@class='topictable']//div[@class='topic']//a[1]/@href
  body: //table[@class='topictable']//div[@class='topic']
# extract_after_hook: $data->{title} =~ s/<.*?>//g

assets/plugins/Filter-EntryFullText/toranoana_shop_torabook.yaml

handle_forceを若干修正。

# author: SweetPotato
handle_force: http://www\.toranoana\.jp/(?:shop|torabook)/
extract_xpath:
  body: //div[@id='tab']

assets/plugins/Filter-EntryFullText/toranoana_ufo.yaml

# author: SweetPotato
handle_force: http://www\.toranoana\.jp/ufo/item_info/
extract_xpath:
  body: //table[@width='100%']

config.toranoana_info.yaml

plugins:
  - module: Subscription::Config
    config:
      feed:
        - url: http://www.toranoana.jp/info/
  - module: CustomFeed::Config
  - module: Filter::EntryFullText
  - module: Filter::ResolveRelativeLink
トラックバック - http://plagger.g.hatena.ne.jp/SweetPotato/20070115