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」という文字列を挿入している例。
3.Pipesの文字化けはcharsetを疑え
Pipesでは取り込むフィードでcharsetが指定されていないとiso-8859-1と解釈されるらしく文字化けする。はてなRSSでアグリゲートさせると行儀のよいフィードになってくれるので常用しているが、Pipes の文字化け回避策3つ - 帝冠ダイアリー で紹介されている、charsetを付けてくれるプロキシも手軽である。ただ、何度か使ってて調子が悪い時があるようなので、複数のプロキシに投げて、正常に返ってきたときだけ値を返すcharset_proxyというpipesを作ってみた。Yahoo!単体で解消できることが望ましいことは言うまでもないが、それまでの暫定措置として。
4.HTML TABLEのスクレイピングはDapperで
HTMLテーブルをRSSに変換すること自体は、そんなに難しくない。下はサンプル。適当に作って最初の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から呼び出すということをすればよいのだが、そこに気付くのに時間がかかってしまった。
で、作ってみたのがコチラ。
これを覚えれば「サイトAに書かれていたことをサイトBで探す」みたいなことが簡単にできる。
--
さて、10個紹介すると書いたが、ここまでで5個である。残りの5個は、またいずれ。
| PHP×WebサービスAPIコネクションズ | |
![]() |
秋元 裕樹 おすすめ平均 ![]() 概要を知るには良いものの、基本部分がちょっと分かりづらい マッシュアップ本では一番好き マッシュアップサイトを作る参考に!! 最新Webサービスのとっかかりに。Amazonで詳しく見る by G-Tools |
「pipes」カテゴリの記事
- Yahoo! Pipesの地図出力をYahoo! Japanの地図で表示させる(2008.10.27)
- Art Beat APIで何か作ってみました(2008.09.15)
- Yahoo! Pipesがcharset問題に取り組んでいるらしいが(2008.11.11)
- DapperでJリーグ公式記録をRSSに(途中)(2008.08.17)
- Pathtraqで隠れた名作を探すのが楽しい(2008.09.28)





概要を知るには良いものの、基本部分がちょっと分かりづらい
マッシュアップ本では一番好き
Comments