« 映画「SEX AND THE CITY」を一夜漬けするのに最適な一冊 | Main | 不動産情報をYahoo! Pipesでマッピングしてみた »

2008.08.23

Yahoo! Pipesのテクニックを10個(前編)

このブログで、もう何回も書いているが、Yahoo! Pipesによるスクレイピングが楽しい。やりたいことができなくてRubyで書き始めたこともあったが、Pipesの視認性の良さに慣れてしまうと、後戻りは難しい。

で、触り始めた頃より少し覚えたことが増えたので列挙してみる。

1.PipesにはWeb型RSSリーダよりFirefoxのライブブックマークが似合う

RSSと言えば、Livedoor ReaderなどWeb型のRSSリーダーで読む方が楽だという固定観念があったが、Pipesを頻繁に手直ししてると未読や既読が混ざってしまい扱いにくい。また、Fetch PageなどでRSSを生成するとpubDateが付かない(もしくは付けるのに苦労する)という点もWeb型と相性が悪い。Firefoxのライブブックマークなど、RSSそのものを単純に表示するようなツールの方が向いている気がする。

2.タイトルを加工すると、より見やすくなる。

Pipesの最もシンプルでポピュラーな使い方が、Unionなどで複数のフィードを結合するというものだと思う。僕もtoto予想のために各種ニュースサイトのRSSをチームごとにアグリゲートして読んでいるが、タイトルだけだと、どこの情報かわからないため、Regrexで文末を示す正規表現である「$」を出典にReplaceしている。元々、RSSに含まれているcreator属性を付け替えてもよいし、手書きでも便利である。下はRegrexで末尾($)に「-sanspo」という文字列を挿入している例。

P1

3.Pipesの文字化けはcharsetを疑え

Pipesでは取り込むフィードでcharsetが指定されていないとiso-8859-1と解釈されるらしく文字化けする。はてなRSSでアグリゲートさせると行儀のよいフィードになってくれるので常用しているが、Pipes の文字化け回避策3つ - 帝冠ダイアリー はてなユーザーの評価  で紹介されている、charsetを付けてくれるプロキシも手軽である。ただ、何度か使ってて調子が悪い時があるようなので、複数のプロキシに投げて、正常に返ってきたときだけ値を返すcharset_proxyというpipesを作ってみた。Yahoo!単体で解消できることが望ましいことは言うまでもないが、それまでの暫定措置として。

4.HTML TABLEのスクレイピングはDapperで

HTMLテーブルをRSSに変換すること自体は、そんなに難しくない。下はサンプル。適当に作って最初の2行を捨てるあたりがミソ。

P2_2

しかし、ちょっと大きいテーブルを相手にすると、必要でない情報までフィードに含まれてしまうところが悩ましい。正規表現で切り取るのが正統派だが、Dapperというサービスはマウスで必要な箇所だけプチプチ選べばよくて快適。前に書いたときは不満もあったが、割り切って使えばなんてことはない。

pipesでDapperをソースにした一覧を見てると、Web2.0化が遅れているようなサイトからの抽出が多く、架け橋のような技術だということがわかる。

ひとつだけ欲を言えば、こういうマッシュアップ系のサービスがOpen IDになってくれれば、ただそれだけのためにアカウントを作らなくてよくて便利なのだが。

5.このサイトの情報を元に、あのサイトで検索する

Dapperは何もTABLEのためだけのツールではない。例えば僕はtotoのサイトで「次回は第355回」という情報を入手して、technoratiで「第355回」のtotoを予想してる人のブログを探すということをやっていた。

これぐらいの作業は人力でやってもかまわないのだが、せっかくだから「355」という数字だけ取って来て、Pipesで「355」で検索した結果だけ取得できれば言うことなしである。簡単そうだが、Pipesにとっては「355」という数字もフィードの一部なので「たまたま355という数字があるが、356、357と続いている数字の一部かもしれない」なんて扱いをしているため、Loopでひとつひとつ流し込んであげる必要がある。

また、Loopの中にはFetch Feedとか単機能の関数しか入れられない。Loopの中で少し複雑なことをしようと思ったら、関数を独自に作ってMyPipesから呼び出すということをすればよいのだが、そこに気付くのに時間がかかってしまった。

で、作ってみたのがコチラ

D3

これを覚えれば「サイトAに書かれていたことをサイトBで探す」みたいなことが簡単にできる。

--

さて、10個紹介すると書いたが、ここまでで5個である。残りの5個は、またいずれ。(追記:こちら

正規表現クックブック

Jan Goyvaerts オライリージャパン 2010-04-15
売り上げランキング : 102656

おすすめ平均 starAve
star1勉強になります
star2値段以外は満足

by ヨメレバ

|

« 映画「SEX AND THE CITY」を一夜漬けするのに最適な一冊 | Main | 不動産情報をYahoo! Pipesでマッピングしてみた »

pipes」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference Yahoo! Pipesのテクニックを10個(前編):

« 映画「SEX AND THE CITY」を一夜漬けするのに最適な一冊 | Main | 不動産情報をYahoo! Pipesでマッピングしてみた »