2012年6月26日火曜日

Yahoo!PipesのFilterモジュールの使い方

スポンサードリンク

1340711549632

Filterモジュールを使用すると、RSSフィードに独自のフィルターをつけることが可能になります。

特定のフレーズを含んだフィードのみを出力したり、正規表現を用いて不要なフィードを除外したりできます。

禁止ワードを指定して、不要なフィードを除外する

作成するPipesの完成系
2012-06-26_19h59_53

今回は、Yahoo!知恵袋のSNSカテゴリのRSSフィードにフィルターをつけてみようと思います。

リンク先にある「RSS」と書かれているアイコンを右クリックして、リンクのURLをコピーします。

2012-06-26_16h59_51

「Sources」から「Fetch Feed」をドラッグして、URLに先ほどコピーしたRSSのURLを貼り付けます。

2012-06-26_17h20_20

「Operators」から「Filter」をドラッグして、「Fetch Feed」と「Filter」をドラッグしてつなぎます。

2012-06-26_17h32_27

Filterモジュールに値を入力していきます。

2012-06-26_18h50_12

最初の行にあるプルダウンメニューは、以下のように指定します。

[Block] items that match [any] of the following

1つ目のプルダウンメニューでは、「Block(禁止)」か「Permit(許可)」を指定します。

2つ目のプルダウンメニューでは、「all(すべて)」または「any(いずれか)」の条件にマッチさせるかを指定します。条件を複数指定する場合に効果があります。ここでは、条件を1つしか指定していないので、どちらを指定しても結果は同じです。

Rulesは以下のように指定します。

item.description [Matches regex] 禁止ワード1|禁止ワード2|禁止ワード3…

Rulesの1つ目のテキストフィールドには、「item.title」または「item.description」を指定します。RSSフィードの「タイトル」にマッチさせるか、「内容」にマッチさせるかを決めます。

プルダウンメニューには、「Matches regex」を選択します。regexは、正規表現を意味しています。といっても今回使う正規表現は「|」だけです。「|」は、「または」を意味する正規表現です。これを使うと、1つのテキストフィールドで複数のフレーズを指定できるので便利です。

2つ目のテキストフィールドには、禁止ワードを必要な分だけ入力して、それらのワードを「|」でつなぎます。ここでは、性表現や罵倒表現を入力しています。禁止ワードは、ニコニコ生放送:運営NGワード一覧を参考にしました。

最後に、FilterとPipe Outputをドラッグでつなぎます。名前は「知恵袋 – SNS[Block]」としました。「Save」で保存すれば完了です。「Run pipe」をクリックして確認してみましょう。

許可ワードを指定して、必要なフィードのみを出力する

作成するPipesの完成系
2012-06-26_19h56_32

続いて許可ワードを利用したフィルターを作ります。先ほど作ったPipesを再利用するので「Save a copy」をクリックします。

2012-06-26_18h59_47

タイトルの先頭が「Copy of ~」になっていることを確認したら、Filterモジュールの値を変更します。

2012-06-26_19h45_34

[Permit] items that match [any] of the following

item.title [Contains] facebook
item.title [Contains] フェイスブック

プルダウンメニューに「Contains」を使ってみました。「Contains」は「含む」という意味です。「Matches regex」で「facebook|フェイスブック」と指定すれば同じ条件になります。

2つ目のプルダウンメニューには、「any」を指定しているので2つの条件のうちいずれかにマッチするフィードを出力します。もし「all」を指定したら、すべての条件にマッチしなければならないので、フィードが1つも出力されません。

入力が完了したら、右上の「Properties…」をクリックして、名前をリネームしましょう。最後に「Save」をクリックして保存すれば完了です。

関連記事