日本のYahoo!を見ていると、Web2.0とは無縁の世界のように思えるが、本場アメリカのYahoo!は面白い。
今年公開されたYahoo!Pipesは、今後のWebの重要ツールになる可能性を秘めたツールだと思う。
http://pipes.yahoo.com/pipes/
http://jp.techcrunch.com/archives/yahoo-launches-pipes/
簡単に説明すると、これは任意のRSS又はXML、JSONデータを入力し、「並べ替え」「フィルタ」「置換」「マージ」等の様々な加工を「繋げる」ことにより別のRSSフィードを生成しようというものだ。
特筆すべきはそのインタフェースで、「並べ替え(Sort)」等の処理が箱として表現され、それらの箱をパイプでつないで行くことで、逐次処理を表現していくことができる。
分かり易い例を挙げると、二つのサイトのRSSを一つにまとめ、日付順にソートし、先頭から15件のみを抜き出す」というような事がほんの数分で実現できる。
言葉で説明しても分かりづらいので、まずは体験することをお勧めする。
ちなみに「パイプ」とはプログラマー的な用語で、ある入力データを処理して何らかの出力を行うようなアプリケーションが複数あった場合に、最初のアプリケーションの出力を次のアプリケーションの入力にしてしまい、一連の処理を全体として一つの処理として扱えるようにする仕組みのことである。
UNIX時代からのギークには特に懐かしい言葉で、その言葉を聞いた瞬間、一発でその用途・目的が分かるという意味で優れたネーミングだと思う。
ちなみに、現時点ではいくつかのモジュールが日本語に対応していない。
日本語フィード自体はもちろん扱える。
パイプ作成の基本的な流れ
まず、Sourcesタブより情報ソースを選ぶ。任意のRSSを選択できるFetch Feedが扱い易い。
Yahoo!Searchなどもキーワードを指定するだけで良いのでテストとしてはラクチン。
これは複数選んでマージすることもできる。
次にOperatorsタブより、実行したい処理のモジュールを配置する。
分かり易い所だとFilterやSortなどが良い。
次に、配置したSourceモジュールとOperatorモジュールの間をパイプで結ぶ。
これは、それぞれのモジュールの上や下についている「○」をドラッグ&ドロップすることで、うにょにょにょーっと繋げる事ができる。この気持ちよさは重要だ。
最後に、Operatorモジュールの出力を「Pipe Output」に繋げて完了。
各モジュールの出力を確認したい時は、そのモジュールを選択した状態で画面下のDebuggerウィンドウから「Refresh」を押せば良い。
完成したらSaveしよう。すると画面上に「Pipe Preview」というリンクが現れるので、それを押すとこのパイプのトップページが表示される。
「Run Pipe」することで、生成された結果を表示することができるが、画面右上の「subscribe」をクリックすると、結果をRSS以外にもJSON形式でも取得することができる。
こんな感じだ。他にも、User Inputsというタブがあり、これはこのパイプのユーザーが自由に指定可能なパラメータを表示する事ができる。このモジュールは最終的にはPipe Preview画面で入力用テキストボックスとなって表れる。テキストボックスの見出しや初期値なども指定可能だ。
User Inputモジュールを使って入力した内容は、フィード加工の元ネタにしたり、フィードそのもののURLとして使ったりできる。例えばオークションサイト等では検索結果をRSS配信しているが、検索条件をUser Inputで入力させ、それをURLパラメータとして使う事で、任意のオークション検索結果を処理対象とする、というような事が可能になる。
このように、使い方次第で無限大の可能性を持っているのだ。
忘れがちだが重要な点は、こうして作ったパイプを公開しても、あなたのサーバには一切負担が無いということだ。まさにYahooさまさまと言った所である。
各モジュールについての調査結果まとめ
ざっと触って見た所、モジュールの中に「簡単に使えるもの」と「理解が難しいもの」があるようだ。
少し調べた結果を以下にまとめておく。
リファレンスの日本語訳を試みている方もいらっしゃるのでこちらもご参考までに。
http://webos-goodies.jp/archives/51064439.html
http://d.hatena.ne.jp/sirouto2/20070213/1171389298
【Sources】
■Fetch Feed
任意のRSSのURLを指定し、それをソースとすることができる。
一番分かり易いSourceモジュールだと思う。
複数のRSSを一つのモジュールで登録できる。どこかのサイトに最大5つまでと書いてあったような気がするが、見る限りいくつでも追加可能なようだ。仕様が変更されたのだろう。
複数のRSSを与えた場合、出力結果はそのRSSの順番になる。
URLを固定で与えるようになっているように見えるが、入力ボックスの右に灰色の小さな「○」があるのに注目。ここにURL Inputモジュールの出力を繋げることで、パイプのユーザーが任意でURLを指定可能になる。URLBuilderを使って他のフィードの情報からURLを組み立て、新しいフィード元とすることもできる。
■Fetch Data
最近新しく追加されたSourceモジュール。
なんと、RSSだけでなくXMLデータ、又はJSONデータを入力させる事ができる。
"Path to item list"を指定することで、処理対象の範囲を狭めることもできる。
例えばXPathでいう /channel/item に相当するのは、"channel.item"となる。
XPathのような複雑な条件式の指定方法は不明。
尚、対象要素が複数ある場合、0から順番にインデックスが振られるので、例えば"channel.item.2"のように指定すると、3番目のitem要素のみを選択できる。XPathで言えば /channel/item[2] のようなものか。
XPathの /channel/item[@id='content'] みたいな指定ができると最高なのだけど…っていうか、XPathが使えれば最高なんだけど。
入力としてもちろんXHTMLも使えるので、ウェブサイトの内容を解析して…ということも、簡単な事なら可能。但しXHTMLにはxml宣言がついていないといけないし、文字コードもUTF-8でないといけないようだ。
■Flickr
いわずと知れたFlickrから情報を取得するSourceモジュール。
"Find"には検索結果の上位何件を取得するかを指定し、"images of"には検索キーワードを入力する。
"near"にはlocationを入力する事になっているが、locationの定義はユーザーが勝手に決めて良い事になっており、Flickrモジュールではどうもアメリカの郵便番号が使われているように見える。恐らくFlickrの投稿写真に関連付けられた位置情報から、近隣の写真のみを抜き出したい場合に使えるのだと思うが未確認。
それぞれのパラメータには、もちろんUser Inputその他からのデータを繋ぐ事ができる。例えば"images of"にInput Locationモジュールを繋ぐと、"Street","City","Country"などが選択できるコンボボックスが出現する。この辺、nearとどう使い分けるのか、試していないので良く分からない。
■Google Base
こちらはGoogle BaseからのSourceモジュール。
基本はFlickrモジュールと似たような使い方なので省略。
■Yahoo!Local
Yahoo!LocalからのSourceモジュール。
同じくFlickrモジュールと似たような使い方なので省略。
■Yahoo!Search
Yahoo!Searchの検索結果を取得するモジュール。
"Search for"には各種User Inputモジュールを繋げる事ができる。
もちろんここにキーワードを直接入力もOK。
"Site restriction"は、多分指定したURL内に検索対象を限定することができる指定。ここにはもちろんURL InputモジュールやURLBuilderモジュールの結果を繋げることができる。
日本語の検索条件が通ることもいちおう確認済。
【User inputs】
■Text Input
"Pipe Preview"、つまりパイプのトップページにユーザー入力用のテキストボックスを表示し、それを各種モジュールの入力とすることができる。
"Name"はこの入力モジュールを表すID。
"Prompt"は入力画面に表示される見出し。
"Position"は複数のUser inputモジュールがあった場合にその表示順序。
"Default"は初期状態で入力しておきたい値。
"Debug"は、パイプ編集画面で仮の入力として扱いたい入力値。
例えば、ユーザーが入力した文字列をYahoo!SearchモジュールやFlickrモジュールの検索条件として使うなどの用途が考えられる。
■Date Input
日付入力という点以外はText Inputと同様。
■Location Input
位置情報入力という点以外はText Inputと同様。
入力画面でGoogle Mapsのようなものが使えるのかと思ったけど、現在は普通のテキストボックスが表示されるだけ。今後何かあるのだろうか?
■Number Input
数値入力という点以外はText Inputと同様。
■URL Input
URL入力という点以外はText Inputと同様。
尚、User Inputモジュールをどこに繋ぐかによって、適切な種類のUser Inputモジュールを選択する必要がある。例えばFetch FeedモジュールのURLに、Text Inputモジュールはそのままでは接続できない(URLBuilderモジュールを間にかまさなければいけない)。URL Inputを使えばそのまま接続できる。
【Operators】
■Content Analysis
フィード活用の可能性を大きく広げてくれるモジュール。
何もパラメータがないので不思議に思うが、これは単に入力と出力の間にかますだけで良い。
これを間にかますと、入力内容から自動的に「キーワード」をいくつか抜き出し、それを"y:content_analysis"という要素名で出力結果に加えてくれる。
例えばこの結果を"For Each"モジュールを使ってFlickrモジュールの"images of"に入力すれば、関連する画像を自動的に取得する事ができる。
非常に残念な事に、日本語のフィードを与えてみたところ、英語部分にしか反応せず、使い物にならなかった。いずれ解決される問題だと思うが、Pipesの肝だと思うので、早めの改善を望みたい。
■Count
フィードの件数を取得し、結果をnumber型で出力するモジュール。
いまいちどういう場面で使えばいいのか分からないが、あるフィードと同じ件数の結果が欲しい場合などにTruncateモジュールの入力に使ったりできると思う。
■Filter
指定した条件に一致する記事(item)を除去(Block)又は抽出(Permit)するモジュール。
"Block"を指定すると、この条件に一致する記事を除去、"Permit"を指定すると一致した記事のみを抽出する。
"all"は、指定した条件全てに一致させたい場合に指定する。
"any"は、指定した条件のいずれかに一致させたい場合に指定する。
"Contains":〜を含む
"Does not contain":〜を含まない
"Matches regex":〜の正規表現にマッチする
"is greater than":〜より大きい
"is":〜である
"is less than":〜より小さい
"is younger than":〜以前(?)
日本語の条件が通らない、という話があったが、試してみたらちゃんと通った。
日々修正されていっているようだ。
■For Each: Annotate
多分、一見してどう使っていいのか分からないモジュールの代表格。
annotateとは「注釈をつける」というような意味。このモジュールは、フィードの各item毎に、補足的な情報を追加することができる。
追加される要素名は、"For each item in input feed, set attribute"で指定できる。ここで指定した名前の要素がitemの直下に追加される。
「どんな情報を追加するのか」に相当するのが、中央の"Drop source module here(ソースモジュールをここへ置いて下さい)"の部分で、例えばここにFlickrモジュールを置くことができる。すると、Flickrモジュールが出力した結果が、item要素の直下に追加されることになる。
無関係のFlickr情報を追加してもしょうがないので、"images of"パラメータでFlickrの検索条件を指定してitem要素と関連づける。For Each: Annotateモジュールの中にFlickrモジュールを入れた時点で自動的にこの"images of"パラメータがコンボボックスに変化し、item要素中の好きなデータを対象として指定できるようになっている。
例えば、RSSフィードには"dc:creator"という名前のデータが含まれており、これは記事を書いた人の名前が格納されている。そこでこのdc:creatorをFlickrモジュールの入力に指定すると、各itemの記事作成者に関係した写真をFlickrから検索し、このフィードに関連づける事が出来るのである。
尚、関連付けの対象itemは"all items"と"first item"のどちらかを選ぶことができる。基本はall itemsでいいだろう。
■For Each: Replace
For Each: Annotateと使い方はほぼ同じ。
Annotateが元のitem要素に情報を追加するだけなのに対して、Replaceはitem要素を丸ごとSourceに指定した結果と置き換えてしまう。1件の入力が複数件に置き換わることもある。
■Location Extractor
Content Analysisと同じく、フィード活用の可能性を広げてくれるモジュール。
元ソースを分析し、位置情報と思われるテキストやURLが存在した場合、そこから位置情報を取り出して出力に加える。位置情報は"y:location"という名前で出力され、その中身はcountry, street, lat, postal, state, city, lon, quality、のようにかなり詳細に渡る。
これらの情報を検索条件として他のSourceへ突っ込んだり、位置情報を扱えるサイトがあればそこのURLパラメータとして使ったりといった用途が考えられる。
但し、現在は日本語のフィードは解析できないようだ。2007.4.12のアップデートでLocation Builderが追加され、こちらは日本語の住所もある程度認識できるようなのでこちらも・・・と期待したが、まだダメだった。
追記:もう少し用途が広がる「Location Builder」モジュールが追加されたのでそちらも併せてどうぞ。
■Regex
正規表現による置換や情報抜き出しを行えるモジュール。
フィードに対してテキスト処理を行いたい時に便利。
"In"で対象としたい要素名を指定。
"replace"で検索又は置換対象を正規表現で指定。
"with"でそれを何で置き換えるかを指定する。
正規表現についてはネットで調べた方が早いが、例えば3桁の数字にマッチする正規表現は単純なものだと"(\d\d\d)"となるが、Inに"title"、replaceに"(\d\d\d)"、withに"id:$1"と書いておくと、title中に検出された3桁の数字の前に"id:"と付けてくれる。ここで"$1"は、replaceに書いた正規表現の中で()で囲まれた部分を表すID。$1が最初にマッチした文字列を表し、以後$2,$3...の順で、()の出現順序と対応する。
withにはフィード要素名を指定することもできる。
要素名の指定は${要素名}とする。例えばInに"title"、replaceに"$"、withに"(${pubDate})"とすると、titleの末尾に"(Tue, 03 Apr 2007 13:46:44)"のようなテキストを追加することができる。replaceに指定した"$"は、正規表現で「末尾」を表す。
フィード中のデータを階層表現で表すこともできる。"${y:location.country}"のように書けば、Location Extractorで検出した位置情報から国情報を取得して付け加えるというようなこともできる。
■Rename
指定したデータ名と別の名前に置き換える、又は新しいデータとして別の名前でコピーすることができる。例えば"title"というデータ名を"caption"という名前に変更したり、別のデータとして追加することができる。
Regex等を使ってデータをいじりたいが、元のデータも残しておきたい、というような場合などに、"Copy As"でデータをコピーする、というような用途が考えられる。
また、RSS以外の出力結果を得たい時などにはアダプタとして活用可能かもしれない。
■Sort
入力フィードを指定したデータで並び替える。たぶん一番分かり易いOperatorモジュール。
"Title" in "ascending" order、と指定すると、title要素を元に昇順ソートする。descendingなら降順になる。
ちなみにソート対象データに item要素のpubDateを指定すると、RSS1.0だった場合にはpubDateではなくdc:dateが指定されている為、うまくソートできない事があるかもしれない。日付でソートしたい場合には、y:published.utimeでソートしておくと自分の場合うまくいった。y:publishedは恐らくYahoo!Pipesが自動的に追加してくれる補足情報と思われる。
入力ソースを繋ぐまで、抽象的なソート条件しか指定できなくなっているので、ちゃんとどこかに繋いでから指定したほうが良い。
■Split
入力フィードを二股で分けて出力してくれるモジュール。所謂タコ足配線が可能になる。
出力先が2つあるが、どちらも入力フィードのそのままコピー。
元ソースを加工した後、元ソースとマージする、というような場合に使えそう。
■BabelFish
言語翻訳モジュール。もちろん英語→日本語OK。これだけの為にYahoo!Pipesを使うという人も多いのでは。実は私も元々RSSフィードの翻訳をやろうとしたが、APIで公開されている翻訳サービスで且つ高速なものが見当たらなかったので、勝手にとある翻訳サイトの出力をいじってサービス化し、自前でRSSフィード翻訳サービスを作った事がある。しかしこれを使えば全て解決。
速度や翻訳精度はなかなかgood。
残念ながら日本語への変換は英語からのみ。ドイツ語→英語→日本語というような処理ももちろん可能だろうが、実際に使い物になる結果が得られるかどうかは不明。
■Truncate
フィード件数を先頭から何件かに絞るモジュール。
一番単純なモジュールだと思うので説明不要かな。
件数はもちろんUser Inputモジュールと繋ぐ事ができるので、一般的にはNumber Inputモジュールと繋ぐ事になると思われる。
■Union
複数のフィードを1つにまとめるモジュール。
フィード単位に順番にまとめられる。
通常はこの出力をSortモジュールなどにつっこんでy:published.utimeなどでソートすることになる。
■Unique
フィードの中で重複するものを削除するモジュール。
これも特に説明不要かな。
【Url】
■URLBuilder
URL文字列を生成する為のモジュール。
主にユーザー入力を元にURLを組み立て、Fetchモジュール等への入力とする。
"Base"には、URLのベースとなる部分。例)"http://hoge.example.xxx"
"Path elements"には、サブフォルダ名。例)"test1"
"Query parameters"には、クエリーのキー名と値。例) "q":"car"
この例の場合、出力は"http://hoge.example.xxx/test1?q=car"となる。
Path elementsやQuery parametersは複数指定可能。
【String】
■String Concatenate
文字列連結モジュール。
指定した複数の文字列を一つにくっつける。
サンプルではLocation Inputモジュールから繋げて、cityやstateなどの情報を一つの文字列に加工してからYahoo!Searchの検索条件に与える、というような事をやっていた。
■String Replace(2007/6/6追加)
文字列置換モジュール。
フィードではなく単一データを入力とする点が、Regexモジュールと大きく利用シーンを異にする。なぜ正規表現をサポートせず、単純な置換機能のみに留めたのかはいまいち不明…。
主に、User inputsモジュールの内容修正などに用いられるものと思われる。
■Sub String(2007/6/6追加)
文字列カットモジュール。先頭から数えて何文字目から、長さ何文字分抜き出す、というようなことができる。同じく単一データを入力/出力とするモジュール。
説明不要とも思うが、利用シーンもあまり思い浮かばない。
【Date】
■Date Builder(2007/4/12追加)
日付を表す様々な形式の文字列から、datetime形式のデータを生成するモジュール。"2007/4/12"といった形式はもちろん、"yesterday"や"2 days ago"などの相対的な形式も、今日の日付から計算してくれる。
datetime形式は、year、month、day、hour、minutes、day_of_weekなどの単位に分解して利用できる。例えばこのモジュールの出力を検索条件入力欄などに繋ぐと、入力欄がドロップダウンリストに変化し、項目を選択できるようになる。
この手の「不定形の入力を解析してくれるモジュール」は他にもいくつかあるが、Pipesの可能性を増す大変面白いモジュール達だ。これらの活用が、面白いサービス作成のポイントだと思う。
試しに「2007年3月12日」や「昨日」などの日本語の日付を入れてみたが、残念ながら正しく解析してくれなかった。これは今後の改善を望みたい。
※なぜか2007.4.13現在、このモジュールの入力形式が「datetime」になっているが、これはtextの間違いだろう。近日中に修正されると思われる。
■Date Formatter
日付を整形して出力するモジュール。
例えば"2007年5月10日"などのような出力を作る事ができる。出力結果はtext。Regexモジュールのwithパラメータの入力に使ったり、URLBuilderを使ってクエリーの一部に使う、等の用途が考えられる。このモジュールへの入力は基本的にDate Inputが使われるものと思われる。
整形指定方法はこちらを参考のこと。→ http://jp2.php.net/strftime
【Location】
■Location Builder (2007/4/12追加)
住所を表す文字列からlocation情報を生成するモジュール。
これを使えば、一般的な住所以外にも郵便番号や空港コード、Google MapsやYahoo!地図のURLなど様々な位置情報から住所情報を生成させることができる。
出力形式はloocation形式となる。Locationを入力とするモジュールにはFlickrやYahoo! Local、Google Baseなどがあるが、殆どの文字列入力可能なモジュールにもlocation情報を繋ぐ事ができる。locationをtext入力に対して繋ぐと、自動的に入力欄がドロップダウンリストに変わる。ドロップダウンリストから、「国」「州」「市」や「緯度・経度」「郵便番号」など様々な単位に分解した文字列を選択することができる。
この為、locationそのものとして利用するよりも、分解結果を検索条件として突っ込んだり、タイトルや説明文の補足情報として表示したり、Filterの条件としたりといった用途の方が大きいかもしれない。
基本的にはLocation Extractorと似たような機能だが、向こうがフィード全体を解析対象としているのに対してこちらは任意の文字列を対象にできる為、応用範囲が広そうだ。試したところ、「福井県福井市」などと入力すると、country:Japan, city:fukui-shi, state:18(福井県の県コード)、のように、ちゃんと解析できている。
ところで、なぜか現在、Location Builderの「Location」項目の入力型がlocationになっている。locationを入力してlocationを出力してもしょうがない。これは恐らくバグで、今日中にもtext等に修正されるだろう。
【Number】
■Simple Math
単純な計算をするモジュール。入力として二つのnumber型を持ち、2項の四則演算と、商余の計算(%)、べき乗の計算(^)ができる。
出力はもちろんnumber型。サンプルでは二つのフィードのcountを足し、それをFlickrモジュールの「検索件数」に入れていたが、意味のあるサンプルとは思えない…。現状ではcountとNumber Input以外にnumber型を出力するモジュールがなく、利用シーンはcountモジュールと同様あまり無いと思われるが、こういうものもあるという事は覚えておいた方が良いだろう。
【My pipes】
自作又は他の人のパイプをモジュールとして利用できる。
User Inputが自動的にモジュールのパラメータとして表示される。
他の人のパイプを使うには、そのパイプを事前にcopyしておく必要がある。
以上、皆様がYahoo!Pipesを活用する一助となれば。
一つ一つ詳細に試したわけではないので、間違っている部分があればご指摘下さい。
その他追記
■JSONP形式でフィード取得
フィード結果をJSON形式でも取得できますが、なんとJSONP形式でも取得可能だそうです。
http://webos-goodies.jp/archives/51076578.html
パイプの JSON フィード URL に以下の CGI パラメータを付けることで、 JSONP 形式の出力が得られるようです。
_callback=<コールバック関数名>
こりゃまた夢の広がるサービス…っていうか、Yahooさん、太っ腹すぎですよ!サーバ負荷大丈夫ですか〜。
■crossdomain.xmlも設置済み
http://blog.pipes.yahoo.com/2007/03/10/pipes-adds-flash-developer-support/
Flash用のcrossdomain.xmlも設置してあるようなので、Flashからのアクセスもオッケーです。(^^)
もー、がんがんブログパーツ作ってくれといわんばかりですね。
■自作サンプル
Yahoo! Pipesで条件分岐処理
http://chikura.fprog.com/index.php?mode=show&UID=1175697934
Yahoo! Pipesを使ってmixi向け専用RSSを作る
http://chikura.fprog.com/index.php?mode=show&UID=1175659682
しかし、こんなことまでやってYahoo!になんのメリットがあるんだろう…。フィード情報をいくら集めた所で、まさかそこへ広告挿入しても意味ないことぐらい分かるだろうし。
世界中のギークへのリップサービスだろうか…。まぁ、間違いなくYahooに対する私の評価はUPしました。
■外部パイプを使うと、フィルターで日本語が効かなくなる?
2007年4月24日現在。入力として自作パイプなどの外部パイプを使い、そこへFilterをつなげて日本語の条件を追加すると、なぜか条件が無視されました。
最初「あれっ?Filterって日本語NGだっけ?」と思ったんですが、Newで普通にFetch Feedから繋げると問題なく動作するので、たぶん外部パイプの出力データに何らかの問題がありそうです。
よく使う処理は共通パイプとしてまとめようとしていた所だったので、このバグ(又は仕様?)は残念…。
それにしても、Date BuilderやLocation Builderの入力が未だにdatetimeやlocationのままなのは、なぜ…?
■さらに使いこなすには…
Yahoo!Pipesは、基本的にRSS情報をどう加工するかというツールです。また、最近ではページをXML情報として扱うこともできるようになっています。この為、RSSやXMLについて勉強しておくと、より様々な利用ができるようになるでしょう。
RSSについては私はこの本で勉強しましたが、開発者向けですね。RSSに関連するサービスの制作には欠かせないと思います。
お忙しいところ恐縮ではありますが、1つお教えいただければ幸いです。
実は、
『二つのサイトのRSSを一つにまとめ、日付順にソートし、先頭から15件のみを抜き出す」というような事がほんの数分で実現できる。』まさにこれがやりたくて、検索でこのブログにたどり着きました。
早速、YAHOO(US)のアカウントを取得しYahoo! Pipesと数時間格闘しているのですが、最初の「Fetch FeedにRSSのURLを指定」ここでつまづいているような次第です。
と言いますのは、下記のアドレスを入力しても、上手く結果が表示されないのです。
・http://kawanaka-keiei.sblo.jp/index20.rdf
・http://keisin-tosi.seesaa.net/index20.rdf
(アドレスを入力すると入力欄の左側に「?」が表示されます。)
まさかseesaaブログは対応していないのか?とすら思い始めております。
なにかアドバイスをいただければ幸いです。
いきなり、図々しい御願いのコメントをしてしまいました。お気に召さない時には削除下さいませ。 — 川中重司
たとえばはてなブックマークが出力するRSSなんかは「?」マークも出ずに読み込めているので、やはりseesaaなどの問題なのだと思います。
実際、これらのRSSをFeed Analyezerなどにかけてみると、「Validでない」という結果が出ます。致命的なものではなさそうですが、これらが問題を起こしている可能性があるかと思います。 — chikura @ 02:36PM 2008-01-11
結論としまして、おかげさまで成功いたしました。
おっしゃるとおりFeed Analyezerにかけますと、エラー(?)がでます。
そこで、これはRSSの問題と確信し、別の種類のRSS(http://kawanaka-keiei.sblo.jp/index.rdf)をFeed Analyezerにかけるとエラーが出ません。
これをYahooPipesに用いると、今までの格闘が不思議なくらいスムーズに結果が出ました。
実は、3つめのブログのRSSは「index.rdf」の方でも上手くYahooPipesが作動しませんでした。
そこでこのRSSをFeed Analyezerにかけますと、問題がある事・対処方法が分かり、上手く対処することができました。
おかげさまで現在、目的を達成することができました。
本当にありがとうございました。 — 川中重司