> ## Documentation Index
> Fetch the complete documentation index at: https://www.bazhuayu.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 触发器

> 介绍八爪鱼采集器进阶功能：触发器。

### **一、功能简介**

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

 

### **二、适用版本**

V8.4.0以上版本

###  

### **三、功能具体说明**

 

每一个「提取数据」步骤，都可设置触发器。

点击【提取数据】步骤，在下方设置页面，点击**\[高级设置]**点击「新增触发器」，可进入到触发器编辑界面，设置触发器名称和条件。

 <img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/01-654859aac6368.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=6307e369108c24535af4566a9637bdee" alt="" width="1905" height="978" data-path="assets/academy/advanced-features/trigger/01-654859aac6368.png" />

 

#### 1、设置触发器名称

<img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/02-65485baa2b6af.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=216a36e8f480190b4080d8a1ad8def06" alt="" width="1218" height="904" data-path="assets/academy/advanced-features/trigger/02-65485baa2b6af.png" />

#### 2、设置触发器条件

1）字段

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

 

<img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/03-65485db003d13.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=41357f72dbb1751d03a5a85bf8a6ac62" alt="" width="1857" height="945" data-path="assets/academy/advanced-features/trigger/03-65485db003d13.png" />

 

注：字段右侧有一个 <img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/04-6520d334aa089.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=5ffca5617f8f1735f73e0d363c9d55e1" alt="" className="academy-inline-icon" width="19" height="24" data-path="assets/academy/advanced-features/trigger/04-6520d334aa089.png" /> 按钮，点击可进行数据格式化。部分字段需要经过格式化处理后，才能有针对性的设置条件，见示例1。

 

2）条件

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

 <img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/05-6520d335009ff.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=62d145fa0495aaf5c5c37c61570ed94a" alt="" width="1371" height="891" data-path="assets/academy/advanced-features/trigger/05-6520d335009ff.png" />

<img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/06-6520d334eafc0.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=5b47d286a718ee1b3bd78dd78de1ae7a" alt="" width="1205" height="779" data-path="assets/academy/advanced-features/trigger/06-6520d334eafc0.png" />

 

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

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

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

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

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

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

 

例如：

如果设置【发文时间 晚于 采集当天0点，就丢弃本条数据】

意思是【如果某篇文章在采集当天0点之后发布，那么就丢弃本条数据】

最终采集到的数据是【在采集当天0点之前发的文章】

在设置条件之前，需要对字段进行格式化，下面以发文时间为例进行演示：

1.选择发文时间字段，点击下图红框标示的按钮进入格式化界面

 

<img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/07-654864503111e.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=ffd39267275af2e238a26a3474f01709" alt="" width="807" height="622" data-path="assets/academy/advanced-features/trigger/07-654864503111e.png" />

 

2.点击添加步骤，选择时间格式化

<img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/08-6548639c63f36.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=83c295d4ea99f7ad7d715abc71fecddd" alt="" width="1188" height="819" data-path="assets/academy/advanced-features/trigger/08-6548639c63f36.png" />

 

3.将时间格式化成：yyyy-MM-dd HH:mm:ss 这种格式，这种是触发器可以判断的时间格式

 

4.设置条件，这里演示设置的条件为晚于当天采集0点就丢弃本条数据

<img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/09-65486705e8697.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=3f073cc069d73c3cb659bdc6e9572ad8" alt="" width="1281" height="764" data-path="assets/academy/advanced-features/trigger/09-65486705e8697.png" />

**重点说一下「自定义」。**

对于【当前采集时间之前5小时】、【采集当天8点之后】等时间范围更加精准限定需求，可通过更加灵活的「自定义」实现。

在如图下拉框中选择「自定义」后，点击右侧 按钮，进入自定义编辑界面。

 

<img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/10-654868b8d702e.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=c53523ba3e28590f76ff92d48cb7345b" alt="" width="957" height="640" data-path="assets/academy/advanced-features/trigger/10-654868b8d702e.png" />

 

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

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

 

<img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/11-654869ee70ce5.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=0ab83749fdeb69802d6eea64e8b71dcf" alt="" width="686" height="527" data-path="assets/academy/advanced-features/trigger/11-654869ee70ce5.png" />

 

例如：

如果设置【发布时间 晚于 当前采集时间-5时0分0秒，就丢弃本条数据】

意思是【如果一篇文章在当前采集时间之后的5小时以内发布（当前采集时间往前推5小时），那么就丢弃本条数据】

最终采集到的数据是【在当前采集时间5小时之前发布的文章】。

 

<img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/12-65486c44dd072.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=ab821584f25c322d1cbbbc57d4389354" alt="" width="692" height="522" data-path="assets/academy/advanced-features/trigger/12-65486c44dd072.png" />

 

> **注：**
>
> a. 年、月、日、小时、分钟、秒输入限制范围为：0-999
>
> b. 因「当前采集时间/采集当天0点」是变化的，所以通过【当前采集时间/采集当天0点 减去或加上一定时间】来限制的时间范围，也是跟随变化的
>
> c. 选择将「手动设置」作为原始日期后，会出现一个日历表，直接选择一个需要的时间即可，但因选择的时间是固定的，所以限制的时间范围也是相对固定的。

<img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/13-6520d3372399c.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=882df170dfd823923344cc50d395f73a" alt="" width="606" height="624" data-path="assets/academy/advanced-features/trigger/13-6520d3372399c.png" />

 

3）就......

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

「丢弃本条数据」：删掉本条数据（即使之前其他提取数据步骤，已提取到数据）。

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

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

 

<img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/14-654888276779e.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=8f1228c8d40d057455455e67e4c784d3" alt="" width="591" height="522" data-path="assets/academy/advanced-features/trigger/14-654888276779e.png" />

 

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

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

对于图中的实例，1和2是且条件，1，2组成的一个大的条件和3是或条件，在这个设置下1和2同时满足，或者3满足时，就会丢弃掉这条数据

<img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/15-65488a2e2a342.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=a5f75dd8b034865d99ddeebe70e3e330" alt="" width="583" height="629" data-path="assets/academy/advanced-features/trigger/15-65488a2e2a342.png" />

 

> **注：**
>
> 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](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：按照常规操作，创建一个规则。这里是一个已经建好的简单规则：

 <img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/16-6520d337b0434.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=657353cd69b0402082762d89a96ea66e" alt="" width="1753" height="961" data-path="assets/academy/advanced-features/trigger/16-6520d337b0434.png" />

步骤2：设置触发器【价格 小于100，就 丢弃本条数据】

 <img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/17-6520d337d401d.gif?s=bac62ba49e9233c3bbc2d43f58980c37" alt="" width="1758" height="968" data-path="assets/academy/advanced-features/trigger/17-6520d337d401d.gif" />

 

步骤3：启动本地采集，看一下采集结果。可以看到，采集到的都是【价格>=100的商品】数据

 <img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/18-65361d78949a0.gif?s=1b8cc9342c5a983c513263090ccb5497" alt="触发器" width="1758" height="968" data-path="assets/academy/advanced-features/trigger/18-65361d78949a0.gif" />

 

#### **实例二**

示例网址：

[http://www.zhenjiang.gov.cn/zhenjiang/zwyw/list.shtml](http://www.zhenjiang.gov.cn/zhenjiang/zwyw/list.shtml)

采集需求：采集发布日期在1月22日之后的发文数据

需求分析：对字段【发文时间】设置判断条件，条件需选择「日期时间型」的【自定义】。

 

以下为具体操作步骤：

 

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

 <img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/19-6520d33821721.png?fit=max&auto=format&n=vpi4XQmibjcUgCLx&q=85&s=d034e519cae57db484be246aeac8022a" alt="" width="1694" height="991" data-path="assets/academy/advanced-features/trigger/19-6520d33821721.png" />

步骤2：设置触发器【发布时间 早于 1月23日，就 丢弃本条数据】，意思是【如果发文信息在9月1日之前发布，那么就丢弃本条发文数据】

 <img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/20-65361d691231b.gif?s=95ffadca102bb23af387c60fc69f9668" alt="触发器" width="1792" height="941" data-path="assets/academy/advanced-features/trigger/20-65361d691231b.gif" />

步骤3：启动本地采集，看一下采集结果。可以看到，最终采集到的数据都是【发布日期在9月1日之后的建筑施工招标信息】

 <img src="https://mintcdn.com/bazhuayu/vpi4XQmibjcUgCLx/assets/academy/advanced-features/trigger/21-65361d5ce0897.gif?s=6d696222cfcdf589ee59cde487b5b941" alt="触发器" width="1792" height="941" data-path="assets/academy/advanced-features/trigger/21-65361d5ce0897.gif" />

注：

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