结果过滤器
在 A-Parser 中,可以根据一组特定规则对结果进行过滤,并仅将所需数据保存到结果中。
使用过滤功能
主要应用场景:
- 仅保存包含特定字符串特征的链接(例如 CMS 标识)
- 按特定参数过滤域名库(例如 Yandex 权重 IKS 大于 300,语言为 RU)
- 检查服务器响应(例如 200 OK 或包含特定请求头)
- 检查原始查询是否出现在摘要(Snippet)中
- 任何其他需要根据特定条件限制结果的应用场景
可以在任务编辑器中,点击对应爬虫工具旁边的工具图标来添加过滤器:

过滤类型
既可以过滤单个结果,也可以过滤结果数组。存在以下几种过滤器类型:
- 字符串相等或不等
- 包含或不包含子字符串
- 符合或不符合 正则表达式
- 数值可以按大于、小于和等于进行过滤
提示
另请参阅:结果展示
工作特性
- 在过滤结果数组时,数组中仅保留符合过滤条件的结果
- 在过滤简单结果时,如果结果不符合过滤条件,则该查询的整个结果将被跳过,包括在使用多个爬虫工具的情况下
- 在任务中使用两个或更多过滤器时,它们之间应用逻辑 与 (AND),换句话说,只有同时满足所有过滤器条件的结果才会被保存
- 在指定值(字符串、正则表达式或数值)的字段中,可以使用 Template Toolkit 模板引擎,所有与 通用结果格式 相同的变量均可用
示例
按页面文本过滤
检查网站库中页面是否包含特定文本
使用包含链接的文件作为查询,结果将得到一个经过过滤的文件,其中包含出现目标文本的链接。
使用
Net::HTTP 爬虫工具下载目标页面,将请求(要检查的链接)保存到结果中。过滤 $data - 下载页面的内容,设置过滤器类型 Contain string,并指定字符串本身:

按尺寸过滤图片
按分辨率过滤图片
在使用
SE::Google::Images 进行数据抓取时过滤图片的宽度和高度,仅保存大于 500x500 像素的图片:

按多个特征过滤
按包含多个不同字符串中的任意一个来过滤链接
为了按多个不同字符串过滤链接,我们将利用指定 正则表达式 的功能,为此使用分隔符记录多个特征:
showthread\.php
/forum/
viewtopic\.php\?t=
备注
请注意,正则表达式需要对一系列字符进行转义

在过滤器中使用查询
保存包含原始查询的 Google 摘要
在比较字符串中明确指定 [% query %] —— 这是包含查询的变量,选择 Sensitive 以便在搜索子字符串时考虑字符大小写:
