muumoo.jp


ニュース記事検索


過去ログ 2007年12月16日 - ニュース過去ログ

ニュース過去ログ

2007/12/16 管理人日記 指定したURLのタイトルを取得するAPIをYahoo! Pipesで作った (管理人日記)

またYahoo! PipesのFetch Pageモジュールを使って実現した新しいAPI。

pagetitle API

今回作ったのは以下。

これは何か

URLを指定すると、そのページのタイトルを、htmlのtitle要素(をスクレイピングで取得)、はてなブックマーク、livedoorクリップ、del.icio.us、Buzzurlから取得し、返します。データはRSS、JSON、JSONPで取得できます。

たとえば、当サイトのURL(http://muumoo.jp/)を指定すると、この記事を書いてる時点では以下の内容が返ります。

  • title: page, description: むぅもぉ.jp
  • title: hatena, description: むぅもぉ.jp
  • title: livedoor, description: むぅもぉ.jp
  • title: del.icio.us, description: むぅもぉ.jp

この4件。titleフィールドに取得元(page / hatena / livedoor / del.icio.us / buzzurl)、descriptionフィールドにページのタイトルが入っています。上記の例でbuzzurlが無いのは、誰もBuzzurlにこのURLを登録していないためです。

使い方

このAPIの呼び出し方は以下のような感じ。

http://pipes.yahoo.com/poolmmjp/pagetitle?url=(URL)&_render=json&_callback=hoge

上記はJSONPで呼び出す場合の例。JSONの場合は_callbackパラメータを削除し、RSSの場合はさらに_renderパラメータを「rss」にしてください。

メモ

通常は「page」のアイテムだけを見ればいいと思いますが、これはYahoo! PipesのFetch Pageモジュールを使って取得しているので、

などの場合にスクレイピングに失敗します。そういうとき、もしそのURLがソーシャルブックマークに登録されていたら、そっちのデータが使えるわけです。

例えば、「このAPIから取得できた文字列のうち、一番文字数が多いものをタイトルして扱う」とかが良いかも知れない。まあ文字数が多いからってわかりやすいとは限らないけど。

仕組み

ここから先はYahoo! Pipesに興味がある人向け。このPipeのソースは以下です。あまりに巨大なので(3000×1203ピクセル)、開くときは要注意。まあ容量は116KBなのでそうでもないけど。

pagetitle APIのソースを開く

一応、何かの役に立つかも知れないので解説を書いておきます。

なかなか巨大なPipeになってしまった。一番大変だったのは、ケーブルがからまないようにモジュールを配置することです。あとスクリーンショットを取るのもかなり大変だった。

正直言って、マウスでドラッグしながら作るメリットは十分わかったので、もういい。あとは何かの言語で書きたい。GUIはとっつきやすいのは良いけど、慣れてくるといちいち大変すぎる。頭に浮かんだアイディアを形にするのに時間がかかりすぎる。言語で書けるようにしたところでYahoo! Pipesの存在価値が無くなるとは思えないけど。

ところでこんなPipeを作ったのは、もちろん自分が欲しかったからです。近いうちにこれ使って何か作ります。

この記事のURI:
http://muumoo.jp/news/2007/12/16/0pagetitle.html


Copyright© 2002-2007 muumoo.jp All Rights Reserved.