2008年02月23日

ちょう初心者のためのY!pipes

こんなの作った、というのから。

CNN.co.jp こぼれ話RSS化+全文配信化しました。http://pipes.yahoo.com/gebet/cnn_fringe_rss


活字中毒R。をRSS化+全文配信化。やってることはそんなにかわらない。
http://pipes.yahoo.com/gebet/katsuji_rss


プログラミングとか全くわからないぼくが
Yahoo!pipesでここまでできる、というのを報告。

そもそもなにするものぞ?
詳しくはよくわからないですけどRSSとかで遊べるらしい。

フィード広告を削除したRSSを発行できたり、RSSを纏めたり、全文配信してないサイトもlinkたどって全文配信RSSにできたり、
RSS配信してないサイトもhtmlを読み取ってRSS配信させるように出来るとか、市バス路線図のAPIを作らはる方まで。すごい。

plaggerとかよくわからんとかいう方でも野良RSSを作成できるのが革命的。

フィードまとめたり削除したり


Fetch Feedからスタートして、
FilterモジュールとかUnionモジュール、Uniqueモジュールなどを用いましょう。英語だからとっつきにくいとかあるかもですが割となんとかなります。これは省略。

全文配信化


これは汎用的なのを作ってらっしゃる方がいらっしゃいますのでそれを利用しない手はない。

フィードのRSSをいれて、本文の開始タグ、終了タグを指定します。
Pipes: 全文配信API(全文配信化)

アメブロ全文配信 RSSのURLをいれます。
Pipes: Ameblo Content All

はてなダイアリー全文配信 はてなダイアリーのURLをいれます。
Pipes: old style d.hatena EFT

広告削除とかと組み合わせてもおもしろいかもしれませんね。

RSS配信してないサイトをRSS化+全文配信


本題に入ります。
ちょくちょくおもしろい話を提供してくれるCNN.co.jp:こぼれ話ですが、
RSSが提供されていなかったため、読む機会が減少していました。
というわけでこんな感じでスクレイピングしてみました。

Ss-Pipes: editing 'CNN.co.jp こぼれ話全文配信'.png

よくわからんだろがーという方もいらっしゃるとはおもいますので
誰でも出来るように解説します。よくわかってないとこもありますのでツッコミお願いします。
  1. Fetch Pageモジュールでページを取得して配列に

  2. ソースURLには一覧ページを指定します。
    この場合は http://www.cnn.co.jp/fringe/fringe.html になります。
    取ってくる範囲をhtmlソースから指定します。
    ここでは
    <div class="newsTitle"><h2>こぼれ話</h2></div> から </ul>
    までとしています。</div>までとするとなぜかうまくいきませんでした。

    その後配列として何によって分割するか、を指定します。これは一ニュース毎の末尾にある</li>になります。
  3. Renameモジュールで属性付与

  4. このままでは分けただけですのでデータとしては使えません。

    item.content に対して タイトル(title) リンク(link) 本文(description) ポストした日付(pubDate) をキャプチャのように設定して付与します。

    Renameというのは上書き、Copy Asというのは元データを保持?なのかな。

    ここでぼくは日付の設定の仕方がよく分からなかったので無視してます、
    どうやってやるんだろ。
  5. Regexモジュールでタイトルとリンクを取得

  6. 正規表現モジュール!ここでぼくもよくわからなかったのですが、他人のソースをちょっと覗き見させて頂き、参考にしました。
    ()で囲った部分をreplaceするみたいです。
    $1 っていうのは1番めに合致する部分、という意味なんだそうです。
    二番めなら $2 になるらしい。
    g s m i っていうのは正規表現のオプションなんだとか。

    item.link に対して .*href="([^"]*)".* with $1

    .*というのは何でもいい文字列で、hrefのあとの""の中の"を含まない任意の文字列をurlとして取ってくるということを示しています。
    正規表現の基礎に関しては、ここがよくわかった気がします。
    http://www.mnet.ne.jp/~nakama/

    同じくtitleはaタグ内の文字列をとってくる(この時<と>を含まない)という正規表現を使っています。これは以下のサイト

    ある文字列を含まない正規表現
    http://www.kt.rim.or.jp/~kbk/regex/regex.html#NOTINCLUDED

    により生成したものを用いたりしました。なぜか<img~も取ってきてしまっていたので消去するような処理にしました。賢くないな…

  7. Loop + Fetch Pageモジュールで全文配信化

  8. Loopモジュールを設置し、そこにFetch Pageをドラッグして設置します。
    URLに item.link を指定することでさっき取得したリンクからデータをとることが可能になります。

    そこで個別ニュースページのhtmlソースを見て、どこからどこまでが本文なのか、汎用的な範囲を1.の時と同じようにして指定します。
    試行錯誤がちょっといるかも。写真アリとナシのニュースでちょっと構造が違ったので時間くいました。

    この時Splitはしないので空欄で。

    最後は出力をdescriptionにして終了です。


これまでの手順はcloserさんの
青空文庫の新着補足pipesを全面的に参考にさせて頂いております。
ありがとうございます。
http://pipes.yahoo.com/closer_nabeshimaeido/aozorabunko

めんどくさそうに見えますが意外と簡単です。
勝手にRSSをみんなで作りましょうーとかいってはみるものの統一した方がいいのでしょうね。

で、相変わらず日付のいれ方が分かりません。
ほんとは入れなきゃいけないんだろうけど。
item.pubDate よくわかんないよー。
ラベル:pipes
posted by ぐー at 07:58| Comment(0) | TrackBack(0) | ネット | このブログの読者になる | 更新情報をチェックする

2008年02月08日

アドエスにしました

無線LANつかえるのはいいね

esをずっと使ってきた人間ですので
その際引っかかったところ

  • メール送信時、勝手にリサイズされる
  • W-ZERO3メールから添付し、なおかつ画像のオプションでリサイズしない
    ように、元のサイズで送信を選ぶ。

  • バッテリが一個になったとき撮影できない
  • 解決策不明、データとかどうでもいいわ!!!!!もずりんなんとかして


いれたやつとかはまたあとで。いちいち書かなくても鉄板しかいれないですけど
posted by ぐー at 00:10| Comment(0) | TrackBack(0) | 雑記 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。