本教程为大家讲解【判断条件】的使用场景与设置方法。

 

一、【判断条件】常见使用场景 

 

1、判断某一条件(如关键词)是否存在,存在就采集,不存在则不采。

例:采集京东商品信息,只想采集自营商品。可以通过判断条件】判断是否为自营商品,是则采集,不是则不采。

2、要采集的数据有多种情况,网页源码存在多种样式,需分开收集。

例:网页正文有的是图片有的文字,两者的数据提取方法不同。可以通过判断条件】判断是图片还是文字,是图片走图片采集分支,是文字则走文字采集分支。

 

3、判断页面是否出现验证码,出现则自动识别,未出现则进入下一个流程步骤。

例:100个淘宝商品详情页url,有的打开网页后正常采集,有的打开网页后出现验证码。同时,我们并不确定哪个url打开后会有验证码。可以通过判断条件】判断页面是否出现验证码,出现验证码时自动识别,未出现则进入下一个流程步骤。

 

 

二、【判断条件】具体案例

 

案例1、判断某一条件(如关键词)是否存在,存在就采集,不存在则不采。

示例网址:https://search.jd.com/Search?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&wq=%E6%89%8B%E6%9C%BA&page=9&s=226&click=0

采集需求:判断商品是否为京东自营 。是,则采集商品列表数据,字段包括商品标题、价格、店铺名。不是,则跳过不采集。

 

 

鼠标放到图片上,右键,选择【在新标签页中打开图片】可查看高清大图

下文其他图片同理

 

操作步骤:


步骤1、先按列表数据采集方法,配置采集流程。

 

 

步骤2、添加【判断条件】步骤。将鼠标移动到流程中【循环列表】与【提取列表数据】中间的 位置,出现  按钮。点击 按钮,添加步骤【判断条件】 。

 

 

接下来,开始设置判断条件。将鼠标移动到左侧的【判断条件-分支】上并双击,进入设置界面。选择判断方式为【当前循环项中包含文本】,并在矩形框中输入文字【自营】作为判断依据,然后点击【应用】。右侧的【判断条件-分支1】,判断方式默认为【不判断,总是执行该分支】。

 

 

 

特别说明:

a. 如何放置【判断条件】的位置?根据需求来,紧跟在需要判断的步骤后面。本示例中,我们是需要判断每一个循环项(即每一个商品列表)是否包含【自营】文本,包含【自营】就提取字段,不包含则不采集。因此,将【判断条件】放到【循环】中的【提取数据】前。

 

b. 如何选择【判断方式】?选中【条件分支】后,可以看到,共有5个判断方式,根据需求选择合适的判断方式。

    【不判断,总是执行该分支】:不设置判断条件,默认勾选。一般最右侧的【条件分支】勾选此方式。

    【当前页面包含文本】:判断当前页面,使用文本作为判断依据。

    【当前页面包含元素】:判断当前页面,使用XPath作为判断依据。

    【当前循环项包含文本】:判断循环项,使用文本作为判断依据。

    【当前循环项包含元素】:判断循环项目,使用XPath作为判断依据。

 

 

c. 为什么对左侧的【条件分支】设置判断方式?【条件分支】至少2个,可以有多个,默认从左至右执行。先判断左边的条件,若左边的分支均不满足条件,最右边的分支将不做判断直接执行。如下图:

 

 

d. 默认为2个【条件分支】。如有多个判断条件,可添加多个【条件分支】。点击【条件分支】的号,即可快速新增1个分支。如需删除多余分支,将鼠标移到  并右键,即可删除此步骤。

 

 

步骤3:设置判断后的操作。本示例的需求是 判断商品是否为京东自营 。是,则采集商品列表数据 。因此,在判断是自营后,需要有1个【提取数据】步骤。将【提取数据】步骤拖入【判断条件-分支】内。

 

 

 

上面流程配置完成以后,手动执行规则来看一下,判断条件是否设置正确。如下图,选中一个非自营的商品,判断提示【文本不存在,检测结果为False】;选中一个自营的商品,判断提示【文本存在,检测结果为True】。测试没有问题,可以正常判断是否为自营商品。

 

 

 

 

步骤4、所有操作设置完毕后,点击【保存】。然后进行【本地采集】,观察采集结果。可以看到,只有【自营】的商品被采集下来了。

 

 

 

2、要采集的数据有多种情况,网页源码存在多种样式,需分开收集。

网页正文有的是图片有的文字,两者的数据提取方法不同。可以通过判断条件】判断是图片还是文字,是图片走图片采集分支,是文字则走文字采集分支。点击查看 腾讯新闻图文采集实例

 

 

二、关于【判断条件】的重要说明

 

1、允许某个分支中无任何操作步骤。

2、对于需要同时判断多个条件,则需要嵌套使用多个分支判断。但建议将已选好判断条件后的网址放入八爪鱼中采集数据。

3、八爪鱼中分支判断对 【存在】 或【不存在】的是非判断,其操作性更为简单便捷。对大小的比较判断操作繁琐,需利用XPath实现。

4、判断条件的【与】用【&】 实现,【或】用【|】实现。

5、如果不同的分支内有不同的【提取元素】步骤,则每个分支内全部【提取元素】步骤中的 字段总个数 和 字段名 需保持一致。


情况1:

分支1内有提取数据步骤,提取的字段为字段1,字段2,字段3

分支2内没有提取数据步骤

这个流程可以正常执行

 

情况2:

分支1内有提取数据步骤,提取的字段为字段1,字段2,字段3

分支2内有【提取数据】步骤,提取的字段为字段a,字段b,字段c

此时流程将不能正常执行

因为八爪鱼采集器执行分支1时提取不到字段abc,分支2的提取步骤都无法提取到数据,八爪鱼采集器判断此条数据不完整,将此条数据作废不保存

解决方法:在分支1的提取步骤增加字段abc,且在分支2的提取数据步骤增加字段123。分支1和分支2的字段名称和个数必须一致,可以设置为空数据也可设为固定值。八爪鱼采集器就会认为字段都提取到了,此时数据不会作废,而是执行分支1时,字段123有数据,字段abc为空白,执行分支2时,字段123为空白,字段abc有数据

 

情况3:
多个分支内有多个不同的【提取数据】步骤,请参考情况2,保证每个分支判断中的字段,字段名及字段数量一致即可

 

 

作者:Vivi  Aisling

编辑:Aisling