一、功能简介
八爪鱼新上线触发器功能,通过对「提取数据」步骤中的字段,设置【某字段 → 满足/不满足某条件 → 就执行某操作】,以限制采集范围,提高采集效率。
二、适用版本
V8.4.0以上版本
三、功能具体说明
每一个「提取数据」步骤,都可设置触发器。
点击【提取数据】步骤,在下方设置页面,点击[高级设置]点击「新增触发器」,可进入到触发器编辑界面,设置触发器名称和条件。
1、设置触发器名称
2、设置触发器条件
1)字段
如图位置,将展示本「提取数据」步骤中的所有字段,可选择要设置条件的字段
注:字段右侧有一个 按钮,点击可进行数据格式化。部分字段需要经过格式化处理后,才能有针对性的设置条件,见示例1。
2)条件
如图位置,列出了三类条件,可针对字段选择需要的条件
① 「通用型」等于/不等于/包含/不包含/不为空
判断通用型字段,包括文本和数字。当其等于/不等于/包含/不包含/不为空,就执行某操作
② 「数字型」大于/小于/大于或等于/大于或小于
判断数字型字段,当其大于/小于/大于或等于/大于或小于 某个值,就执行某操作
③「时间日期型」晚于/早于/晚于或等于/早于或等于 当前采集时间/采集当天0点/自定义
判断时间日期型字段,当其晚于/早于/晚于或等于/早于或等于 当前采集时间/采集当天0点/自定义,就执行某操作
例如:
如果设置【发文时间 晚于 采集当天0点,就丢弃本条数据】
意思是【如果某篇文章在采集当天0点之后发布,那么就丢弃本条数据】
最终采集到的数据是【在采集当天0点之前发的文章】
在设置条件之前,需要对字段进行格式化,下面以发文时间为例进行演示:
1.选择发文时间字段,点击下图红框标示的按钮进入格式化界面
2.点击添加步骤,选择时间格式化
3.将时间格式化成:yyyy-MM-dd HH:mm:ss 这种格式,这种是触发器可以判断的时间格式
4.设置条件,这里演示设置的条件为晚于当天采集0点就丢弃本条数据
重点说一下「自定义」。
对于【当前采集时间之前5小时】、【采集当天8点之后】等时间范围更加精准限定需求,可通过更加灵活的「自定义」实现。
在如图下拉框中选择「自定义」后,点击右侧 按钮,进入自定义编辑界面。
进入自定义编辑界面后,通过对「当前采集时间/采集当天0点/手动设置」进行一定设置,满足更多时间限制需求。
选择将「当前采集时间/采集当天0点」作为原始日期时间后,出现如图选择框「-/+ x年x月x日x时x分x秒」 ,意思是【在当前采集时间/采集当天0点 基础之上,减去或加上一定时间】
例如:
如果设置【发布时间 晚于 当前采集时间-5时0分0秒,就丢弃本条数据】
意思是【如果一篇文章在当前采集时间之后的5小时以内发布(当前采集时间往前推5小时),那么就丢弃本条数据】
最终采集到的数据是【在当前采集时间5小时之前发布的文章】。
注:
a. 年、月、日、小时、分钟、秒输入限制范围为:0-999
b. 因「当前采集时间/采集当天0点」是变化的,所以通过【当前采集时间/采集当天0点 减去或加上一定时间】来限制的时间范围,也是跟随变化的
c. 选择将「手动设置」作为原始日期后,会出现一个日历表,直接选择一个需要的时间即可,但因选择的时间是固定的,所以限制的时间范围也是相对固定的。
3)就......
丢弃本条数据/结束循环/结束本次采集
「丢弃本条数据」:删掉本条数据(即使之前其他提取数据步骤,已提取到数据)。
「结束循环」:下拉框中出现采集规则中所有循环步骤的名称,选择相应循环步骤。
「结束本次采集」:其效果等于立即停止采集。
3、「且条件」和「或条件」
一个触发器中,可对多个字段进行条件设置。这些条件存在「且」(同时满足)和「或」(满足其中一个即可)的关系。
对于图中的实例,1和2是且条件,1,2组成的一个大的条件和3是或条件,在这个设置下1和2同时满足,或者3满足时,就会丢弃掉这条数据
注:
a. 每一个「提取数据」步骤,最多只能设置50个触发器
b. 已设置好的触发器,可进行禁用、复制、编辑和删除操作
四、实例演示
实例一
示例网址:
https://category.vip.com/suggest.php?keyword=%E9%B8%BF%E6%98%9F%E5%B0%94%E5%85%8B&ff=235|12|1|1
采集需求:采集唯品会商品列表价格大于等于100元的商品
需求分析:对字段【价格】设置判断条件,价格高于或等于100才采集,条件需选择「数字型」。
以下为具体操作步骤:
步骤1:按照常规操作,创建一个规则。这里是一个已经建好的简单规则:
步骤2:设置触发器【价格 小于100,就 丢弃本条数据】
步骤3:启动本地采集,看一下采集结果。可以看到,采集到的都是【价格>=100的商品】数据
实例二
示例网址:
http://www.zhenjiang.gov.cn/zhenjiang/zwyw/list.shtml
采集需求:采集发布日期在1月22日之后的发文数据
需求分析:对字段【发文时间】设置判断条件,条件需选择「日期时间型」的【自定义】。
以下为具体操作步骤:
步骤1:按照常规操作,创建一个规则。这里是一个已经建好的简单规则:
步骤2:设置触发器【发布时间 早于 1月23日,就 丢弃本条数据】,意思是【如果发文信息在9月1日之前发布,那么就丢弃本条发文数据】
步骤3:启动本地采集,看一下采集结果。可以看到,最终采集到的数据都是【发布日期在9月1日之后的建筑施工招标信息】
注:
a. 此种方法只适用于时间是【x年x月x日x时x分x秒】这类标准格式的网页。对于时间是【x分前】【x小时前】【x天前】【刚刚】【今天】等非标准格式的网页,不能用「日期时间型」进行判断。此类时间是非标准格式的网页,可通过「通用型」、「数字型」、「且条件」、「或条件」,灵活设置多个触发器,实现需求。