先月RSSの配信を停止したGoogleアラート、そしてAPIの変更によって以前のように利用できなくなったTwitterのフィードと、RSSをメインに情報収集していた自分にとっては最近になって何かと不便な世の中なりつつあります。
そこで普段からいろいろと多用しているYahoo! Pipesを使ってGoogleやTwitterの検索結果をRSSフィードで出力するパイプというのを作ってみました。
【使用方法】
【オプション】
ここでこのフィードの特徴などについていくつか触れておきましょう。
このパイプはGoogleの検索APIなどを使わず一般の検索ページのHTMLからストレートにスクレイピングしています。
したがってAPIの利用制限などの制約を受けず、また、基本的に一般の検索ページで行なう動作と同じため、クリエに各種検索コマンドやシンタックスがそのまま使えるというメリットがあります。
(反面、HTMLからパースしているのでレイアウトが変更されると動作しなくなる恐れがありますが)
また、従来のGoogleアラートは重要度の高い結果にフィルタリングされた独自のエンジンを使用しているため、検索結果が一般のウェブ検索と異なる場合があり、ノイズが少ない反面取りこぼしも少なくないということがありますが、このフィードは一般の検索結果と共通なため、はじめからノイズの混じらないような絞り込みの利いた検索クエリでフィードを作れば従来のGoogleアラートよりもむしろ信頼性の高いものができる可能性があります。
一方注意点としては、あくまでフィードの更新時間毎に普通の検索を行なってその結果をRSS形式に加工して配信しているに過ぎず、それが過去に配信された情報か否かに関わらず常に検索結果の上位指定数件をRSSとして出力するということ。
日付順にソートされた検索結果をRSS化するわけですが、ヒット率が低いキーワードなどを設定したとすると検索結果はあまり変動しないので、同じ内容のフィードが繰り返し配信されるということになります。
そこでオプションとして「Restrict」を用意したので、ここで検索結果の期間を絞り込むことでこのような問題をある程度解消できます。
例えば、デフォルト設定の「d」では現在から1日以内の検索結果だけが配信され、1日を過ぎた結果はもはや対象外になり配信されません。
このように検索クリエのヒット率との兼ね合いを考え「Restrict」を設定してください。
各フィードアイテムの更新時刻である「pubDate」の値には常にフィードを作成した時間で設定されます。
これは、検索結果のソース元に時間を示す情報が取得できないため止むを得なくこのようにしており、フィードアイテムは新しい順に並びはしますが更新時間は正しいものではありません。
(もっともGoogle検索結果で表示される日付はインデックスされた日付であり、ページが公開された正確な日付を取得するすべはありません)
検索対象ページの言語設定についてはデフォルトでは「lang_ja」となっており日本語のページから検索するようになっていますが、必要に応じ他の言語に変更することができます(カントリーコード)。
また、すべての言語からにする場合には無指定にしてください。
(ただし、ソース元を「https://www.google.co.jp」に指定しているため基本的に日本語の検索結果に比重が置かれています)
フィードの取り扱いに関しては、過度なリクエストやエラーが頻発するとYahoo! Pipes側で一定時間の利用制限が発生することが希にあります。
このようなトラブルやトラフィックを分散する意味でも、Yahoo! Pipesのアカウントをお持ちの方はなるべくパイプのクローン(コピー)を作成し、自アカウントで運用して頂いたくことをおすすめします。
また、このパイプは今のところパブリッシュにしていませんが、事実上公開状態なのでアカウントをお持ちの方であれば誰でもカスタマイズ可能で、クローンを作って自由に弄ってもらって結構です。
さて、正直このような検索RSSなどのサービスは4、5年前はよく取り上げたものですが、現在いざ探してみるとまともに動くものがなかったりということで今更ながらこんなものを自作してみた次第です。
テストも十分でない「個人的なフィード」の域を超えない出来ですが、需要があるのならばご自由にお使い頂ければと思います。
ちなみに現在Twitter関連のRSSを制作中、完成次第公開致します。
Yahoo!Pipesのサービス終了に伴い正常に機能しなくなりました。