メインコンテンツへスキップ

結果フィルタ

A-Parserでは、特定のルールセットに基づいて結果をフィルタリングし、必要なデータのみを結果に保存することが可能です。

フィルタリングの使用方法

主な活用例:

  • 特定の文字列(例:CMSの兆候)を含むリンクのみを保存する
  • 特定のパラメータ(例:Yandex IKS 300以上、言語がRU)でドメインベースをフィルタリングする
  • サーバーからのレスポンスを確認する(例:200 OKや特定のヘッダーの有無)
  • スニペットに元のクエリが含まれているか確認する
  • 特定の条件に基づいて結果を制限する必要があるその他のあらゆるケース

フィルタは、タスクエディタで必要なスクレイパーの横にあるツールアイコンをクリックして追加できます。

タスクエディタのフィルタオプション

重複排除タイプ

単一の結果と結果の配列の両方をフィルタリングできます。いくつかのフィルタタイプがあります:

  • 文字列の一致または不一致
  • 部分一致(サブストリング)の有無
  • 正規表現への適合または不適合
  • 数値については、より大きい、より小さい、等しいによるフィルタリングが可能
ヒント

動作の特徴

  • 結果の配列をフィルタリングする場合、フィルタに該当する結果のみが配列に残ります
  • 単純な結果をフィルタリングする場合、結果がフィルタに該当しないと、複数のスクレイパーを使用している場合も含め、そのクエリの結果全体がスキップされます
  • タスクで2つ以上のフィルタを使用する場合、それらの間には論理ANDが適用されます。つまり、すべてのフィルタ条件を同時に満たす場合にのみ結果が保存されます
  • 値(文字列、正規表現、または数値)を指定するフィールドでは、Template Toolkit テンプレートエンジンを使用でき、共通結果フォーマットと同様のすべての変数が利用可能です

ページ上のテキストによるフィルタリング

ページ内に特定のテキストが存在するかどうかのサイトベース確認
クエリとしてリンクを含むファイルを使用し、結果として検索テキストが含まれるリンクのみが抽出されたファイルを取得します。

Net::HTTPNet::HTTP スクレイパーを使用して対象のページをダウンロードし、結果にクエリ(チェックするリンク)を保存します。結果の `$data`(**ダウンロードされたページのコンテンツ**)をフィルタリングし、フィルタータイプに `Contain string` を設定して、対象の文字列を指定します。ページ上のテキストによるフィルタリングの例

画像サイズによるフィルタリング

解像度による画像のフィルタリング

SE::Google::ImagesSE::Google::Images でのスクレイピング時に画像の高さと幅をフィルタリングし、**500x500** ピクセルより大きい画像のみを保存します。画像サイズによるフィルタリングの例

複数の条件によるフィルタリング

複数の異なる文字列のいずれかが含まれるリンクのフィルタリング
複数の異なる文字列でリンクをフィルタリングするには、正規表現を指定できる機能を利用し、区切り文字を使って複数の条件を記述します:

showthread\.php
/forum/
viewtopic\.php\?t=
注記

正規表現では一部の文字をエスケープする必要があることに注意してください。

複数の条件によるフィルタリングの例

フィルタでのクエリの使用

元のクエリが含まれているGoogleスニペットの保存
比較用の文字列として、クエリを保持する変数 [% query %] を明示的に指定し、大文字小文字を区別して部分一致を検索するために Sensitive を選択します:

フィルタでのクエリ使用の例