最終兵器Plagger RSSフィード

2006-12-10

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

GameSpotのニュース EFT

http://www.gamespot.com/news/

英語です。)


gamespot_com.yaml

#upgrade GameSpot  http://www.gamespot.com/news/
author: Tennetiss
handle: http://(\w+)\.gamespot\.com/news/.*
extract: (<h5 class=.*?>.*?)<div class="storybtns">
extract_capture: body

config(part of)


  - module: Subscription::Config
    config:
        feed:
          - http://www.gamespot.com/misc/rss/index.html

2006-12-08

[][][]ソフトバンククリエイティブ GA Graphic ソフトバンククリエイティブ GA Graphic - 最終兵器Plagger を含むブックマーク

--追記 12/9/06

yamlが正しく表示されたりされなかったりしたんでちょいと修正しました。

--

ソフトバンククリエイティブ GA Graphicを購読

http://ga.sbcr.jp

老舗故かfeed吐いてそうではいてないんで。

indexタイトル羅列で毎日のエントリ数自体はやたら多いわけではないので、CustomFeed::Configでtitleとlinkを取得。そしてlinkからEFTbody取得。


EFTが二つあるのは、g-toysのみhtmlテンプレートが違うため。

ざっくり取ってきてafter_hookで泥臭いパースするのもアリアリなんだけど、EFTが一方でhandleできなかったら別のupgraderを使うというcool仕様なので、二つ用意してみた。


assets/plugin/Filter-EntryFullText/sbcr.yaml

# GA Graphic  http://ga.sbcr.jp
author: Tennetiss
handle: http://ga\.sbcr\.jp/[^g].*
extract: <!--本文 //-->(.*?)<!--本文 end //-->
extract_capture: body

assets/plugin/Filter-EntryFullText/sbcr2.yaml

# GA Graphic  http://ga.sbcr.jp/g-toys/*
author: Tennetiss
handle: http://ga\.sbcr\.jp/g-toys/.*
extract: <!-- NEWS END -->(.*?)<!--MOVE-->
extract_capture: body

assets/plugin/CustomFeed-Config/sbcr.yaml

# http://ga.sbcr.jp/
author: Tennetiss
match: http://ga\.sbcr\.jp/.*
extract: <h3 class="title"><a href="(.*?)">(.*?)</a>
extract_capture: link title
extract_encode: cp932
extract_after_hook: |
  $data->{link} =~ s!\./!!g;
  $data->{link} = "http://ga.sbcr.jp/" . $data->{link};

config.sbcr.yaml(の一部)

plugins:

  - module: Subscription::Config
    config:
      feed:
        - http://ga.sbcr.jp/

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

  - module: CustomFeed::Config

#  - module: Filter::BreakEntriesToFeeds
  - module: Filter::Rule
    rule:
      module: Deduped


g-toysは特に、写真が多いためかtableタグが大量に入ってるので、readerによってはややレイアウトが崩れ気味になるけど。EFTではよくあること!

実際、table内のwidthだけひっこぬいてみたりしたんだけど、あまり効果的とは言えなかったので、下手に弄らないことにした。


entryごとに日付が書いてあったらそれを取りたかったんだけど。


ちなみに、PublishをGmailにすると、初期(キャッシュなし)状態だと200は超えるくらいのentryができちゃうんで、BreakEntriesToFeeds使ってgmailsmtpを使う場合、たぶん怒られる。(自分の場合はpublish::gmailsendmail(というかexim)なので試してない。)

breakしないで送ると、クソでっかいメールになるんで、やっぱり怒られるかも。試してない。

個人的にはこれも含めてほとんどはPublish::Feedにしてるんで。

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も変えたりとか。