一、功能简介

八爪鱼新上线触发器功能,通过对「提取数据」步骤中的字段,设置“某字段 → 满足/不满足某条件 → 就执行某操作”,以限制采集范围,提高采集效率。

 

二、适用版本

V7.4.6以上版本

 

三、功能界面

1、每一个「提取数据」步骤,都可设置触发器。下图是触发器初始页面,还未设置触发器。

 

 

下图是已设置触发器的界面,如图已设置好两个触发器。

 

注:

每一个「提取数据」步骤,最多只能设置50个触发器

已设置好的触发器,可进行禁用、复制、编辑和删除操作

 

2、点击「新增触发」,进入到触发器编辑界面,设置触发器名称和条件。

 

 

四、功能具体说明

1、设置触发器名称

 

 

2、设置触发器条件

1)字段

如图位置,将展示本「提取数据」步骤中的所有字段,可选择要设置条件的字段

 

注:字段右侧有一个 按钮,点击可进行数据格式化。部分字段需要经过格式化处理后,才能有针对性的设置条件,见示例1。

 

2)条件

如图位置,列出了三类条件,可针对字段选择需要的条件

通用型」等于/不等于/包含/不包含/不为空

判断通用型字段,包括文本和数字。当其等于/不等于/包含/不包含/不为空,就执行某操作

② 「数字型」大于/小于/大于或等于/大于或小于

判断数字型字段,当其大于/小于/大于或等于/大于或小于 某个值,就执行某操作

③「时间日期型」晚于/早于/晚于或等于/早于或等于 当前采集时间/采集当天0点/自定义

判断时间日期型字段,当其晚于/早于/晚于或等于/早于或等于 当前采集时间/采集当天0点/自定义,就执行某操作

 

例如,如果设置“发布时间 晚于 采集当天0点,就丢弃本条数据”,意思是“如果一篇文章在采集当天0点之后发布,那么就丢弃本条数据”,最终采集到的数据是“在采集当天0点之前发的文章”。

 

 

重点说一下「自定义」。对于“当前采集时间之前5小时”、“采集当天8点之后”等时间范围限定需求,可通过更加灵活的「自定义」实现。在如图下拉框中选择「自定义」后,点击右侧 按钮,进入自定义编辑界面。

 

 

进入自定义编辑界面后,通过对「当前采集时间/采集当天0点/手动设置」进行一定设置,满足更多时间限制需求。

 

选择将「当前采集时间/采集当天0点」作为原始日期时间后,出现如图选择框「-/+ x年x月x日x时x分x秒」 ,意思是“在当前采集时间/采集当天0点 基础之上,减去或加上一定时间”

 

例如:

例如,如果设置“发布时间 晚于 当前采集时间-5时0分0秒,就丢弃本条数据”,意思是“如果一篇文章在当前采集时间之前的5小时以内发布(当前采集时间往前推5小时),那么就丢弃本条数据”,最终采集到的数据是“在当前采集时间5小时之前发布的文章”。

 

 

注:

年、月、日、小时、分钟、秒输入限制范围为:0-999

因「当前采集时间/采集当天0点」是变化的,所以通过“当前采集时间/采集当天0点 减去或加上一定时间”来限制的时间范围,也是跟随变化的

 

选择将「手动设置」作为原始日期后,会出现一个日历表,直接选择一个需要的时间即可

 

注:

可选择日历表中的任何一个时间。但因选择的时间是固定的,所以限制的时间范围也是相对固定的。

 

3)就......

丢弃本条数据/结束循环/结束本次采集

「丢弃本条数据」:删掉本条数据(即使之前其他提取数据步骤,已提取到数据)。

「结束循环」:下拉框中出现采集规则中所有循环步骤的名称,选择相应循环步骤。

「结束本次采集」:其效果等于立即停止采集。

 

3、「且条件」和「或条件」

一个触发器中,可对多个字段进行条件设置。这些条件存在「且」(同时满足)和「或」(满足其中一个即可)的关系。

 

例如:

图中的触发器设置了3个条件,意思是“标题不包含“7.0”且阅读量>500就丢弃本条数据;在采集当天0点之后发布的,也丢掉本条数据”,最终采集到的数据是“标题包含“7.0”且阅读量<=500”的数据”和“在采集当天0点之前发布的数据”。

 

五、操作示例

 

示例一

示例网址:

http://sz.58.com/chuzu/?PGTID=0d100000-0000-481f-8e88-602bab34d832&ClickID=2

采集需求:采集58同城租房列表页面积>=50m²的租房数据

需求分析:对字段“面积”设置判断条件,条件需选择「数字型」。我们发现,采集到的数据并非全数字,而是掺杂着文本信息(文本信息会影响条件)。因此,我们需先将“面积字段”采集到的数据格式化,处理成纯数字。

 

以下为具体操作步骤

步骤1:按照常规操作,创建一个规则。这里是一个已经建好的简单规则。

 

步骤2:格式化处理“面积”字段,将其变为纯数字。利用正则表达式 [0-9]+(?=㎡) ,匹配出面积中的纯数字。

 

注:正则表达式怎么写?查看此教程:提取数据-格式化数据

 

步骤3:设置触发器“面积 小于 50,就 丢弃本条数据”

 

步骤4:启动本地采集,看一下采集结果。可以看到,采集到的都是面积>=50m²的租房数据

 

示例二

示例网址:

https://item.taobao.com/item.htm?spm=a1z02.1.2016030118.d2016038.12eb782dnf2tHd&id=549590913561&scm=1007.10157.81291.100200300000000&pvid=5bc34efd-11db-4f2c-89bb-fc81d21fb3ec

采集需求:采集淘宝商品在当前采集时间之前10天以内发布的评论

需求分析:对字段“评论时间”设置判断条件,条件需选择「日期时间型」的“自定义”

 

以下为具体操作步骤

步骤1:按照常规操作,创建一个规则。这里是一个已经建好的简单规则

 

步骤2:设置触发器“评论时间 早于 当前采集时间-10天,就 丢弃本条数据”,意思是“如果评论在当前采集时间前10天(当前采集时间往前推10天)之前发布,那么就丢弃本条评论”

 

步骤3:启动本地采集,看一下采集结果。可以看到,最终采集到的数据都是“在当前采集时间前10天之内发布的评论”(图中的当前采集时间是2018-07-31 18:33:45,往前推10天是2018-07-21 18:33:45,最终采集到的都是2018-07-21 18:33:45到2018-07-31 18:33:45 之间的评论)

 

注:此种方法只适用于时间是“x年x月x日x时x分x秒”这类标准格式的网页。对于时间是“x分前”“x小时前”“x天前”“刚刚”“今天”“昨天”等非标准格式的网页,不能用「日期时间型」进行判断。此类时间是非标准格式的网页,可通过「通用型」、「数字型」、「且条件」、「或条件」,灵活设置多个触发器,实现需求。