最終兵器Plagger RSSフィード

2006-11-12

[][]Excite Bit Excite Bit - 最終兵器Plagger を含むブックマーク

Excite Bit コネタEFT

http://www.excite.co.jp/News/bit/

# upgrade http://www.excite.co.jp/News/xml/rss_excite_news_bit_index_utf_8.dcg
author: Tennetiss
handle_force: http://www\.excite\.co\.jp/News/bit/
extract: (<table border="0" cellspacing="0" cellpadding="1" align="left">.*?<DIV class=lh140>.*?</DIV>)
extract_capture: body

2006-10-26

[][]bk1レビュー bk1レビュー - 最終兵器Plagger を含むブックマーク

オンライン書店ビーケーワン bk1スタッフレビューEFTなんたら

http://blog.bk1.co.jp/review/

author: Tennetiss
handle: http://blog\.bk1\.co\.jp/review/
extract_xpath:
  body: //div[@class="blogbody"]

なんつうか、スクレイピングxpathも使えるようになって閾値がぐっと下がった事だし、もうわざわざ「できたどー!」とか書くのも恥ずかしい気がしてきてる。

backup目的で一応upし続けるとは思うけど。

2006-10-17

[][]Baltimore Sun Baltimore Sun - 最終兵器Plagger を含むブックマーク

ボルティモア サン紙のEFTハンドラ(handlerの呼称でコンセンサスがとれてるらしい)(追記:upgraderかもしれないソウデス)

http://www.baltimoresun.com/

英語ですすんません。

日本人には全く需要ない気がしますが。Baltimoreに住んでるもんで・・・

でも州外に出た人の話を聞くとSunの記事が恋しくなるというくらい質が高いとかなんとか。(お世辞くさいが)

ワシントンポストよりSunの方が好きだ、っていう人も結構居たなあ。なんでかは知らんが。

baltoSun.yaml

author: Tennetiss
handle: http://(\w+)\.baltimoresun\.com
extract_xpath:
  body: //div[@class="text"]


config.baltoSun.yaml(の一部)


  - module: Subscription::Config
    config:
      feed:
        - http://feeds.baltimoresun.com/baltimoresun/news/rss2.0.xml

  - module: Filter::EntryFullText
    config:
      force_upgrade: 1

  - module: Filter::ResolveRelativeLink


[][]USフロントライン USフロントライン - 最終兵器Plagger を含むブックマーク

U.S. FrontlineのEFTなんたら。

http://www.usfl.com/

結構手強かった・・・

xpathでハマりがあったんで一応メモっておきます。

下にもあるとおり、

/html/body//td[2]/table//td[2]/table[2]//td

と処理してるんだけど、これは展開した形だと

/html/body/table/tbody/tr[2]/td/center/table[3]/tbody/tr/td[2]/table/tbody/tr/td[2]/table[2]/tbody/tr/td

なのだけど、これだとエラーが出る。明確な理由まではわからなかった。自分の中では「とにかく長いのはダメ」ということにしておいた・・・。短すぎてもダメだった。

after_hookでやってるのは、tdだけ浮いてしまうのでそれの削除と、一部の記事には最後に他の記事の目次がなぜか入ってるので、それをカット

最後にfontタグを閉め。(cococみたいにエントリを全部繋げて見せるリーダの場合、font閉め忘れてるエントリが一つあると悲惨な事になる)

あともう一つ、configの方。

user_agentを詐称しないとダメだった。html自体とってこれない(usfl側ではじいてる)。

なので、何か適当ブラウザで読みに行ってることにすると吉。(下例ではIE6)

usfl.yaml

author: Tennetiss
handle: http://www\.usfl\.com
extract_xpath:
  body: /html/body//td[2]/table//td[2]/table[2]//td
extract_after_hook: |
  $data->{body} =~ s!<td.*?>!!sg;
  $data->{body} =~ s!</td>!!sg;

  if( $data->{body} =~ m!(.*?)_/.*?!s ){
    $data->{body} = $1 . '</font>';
  }


config.usfl.yaml(の一部) part1


global:
  user_agent:
    agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows XP)

part2


  - module: Subscription::Config
    config:
      feed:
        - http://www.usfl.com/rss/usfl.rdf

  - module: Filter::EntryFullText

otsuneotsune2006/10/26 10:35handle:をhandle_force:に変えた物をcommitしていいですか?

akaihoakaiho2006/10/26 18:46はい、どれでもcommitしていただいて構いませんよ!

akaihoakaiho2006/10/26 18:50改変もご自由にどうぞ。原型留めないほどの魔改造とか。authorも変えたりとか。

2006-10-08

[][]まんたんウェブ まんたんウェブ - 最終兵器Plagger を含むブックマーク

毎日新聞 まんたんウェブEFT

http://mantanweb.mainichi.co.jp/web/

mantanweb.yaml

author: Tennetiss
handle: http://mantanweb\.mainichi\.co\.jp
extract: (<div class="entry-body">.*?)<div class="adsens468x60">
extract_capture: body

最初はxpathでやってみたんだけど、前後に明確に特徴のあるタグがある場合はregexの方が書きやすいように思う。慣れだろうけど。

もし各エントリの最後の方に良く付いてるAmazonアフィも消したいのなら、もう少し前で切ってくださいませ。

config.mantanweb.yamlの一部


  - module: Subscription::Config
    config:
      feed:
        - http://mantanweb.mainichi.co.jp/web/index.xml

  - module: Filter::EntryFullText
    config:
      store_html_on_failure: 1
      force_upgrade: 1
  - module: Filter::ResolveRelativeLink 

  - module: Filter::Rule
    rule:
      module: Deduped

force_upgradeしないと、一部のエントリだけalready contains bodyになってしまうので注意。(EFTyaml内で解決する方法もあったような気がするんだけど)

[][]4Gamer.net 4Gamer.net - 最終兵器Plagger を含むブックマーク

もう既に誰かやってたらごめんなさい。

4Gamer.netEFT

http://www.4gamer.net/

author: Tennetiss
handle: http://www\.4gamer\.net/
extract: (<table width="100%" .*?>.*?)<!-- tDialy:END -->
extract_capture: body


  - module: Subscription::Config
    config:
      feed:
        - http://www.4gamer.net/rss/rss.shtml

  - module: Filter::EntryFullText
    config:
      store_html_on_failure: 0
  - module: Filter::ResolveRelativeLink 
  - module: Filter::Rule
    rule:
      module: Deduped