判断条件的使用


本教程为大家讲解判断条件的使用,首先讲解何时需要使用判断条件。


常见情景:

 

1、判断某一条件(如关键词)是否存在,存在就采集不存在则不采。例:采集京东商品信息,只想采集自营商品。则可以通过分支判断是否为自营商品,是则采集,不是则不采。

2、要采集的数据有多种情况,网页源码存在多种样式,需分开收集。例:网页正文有的是图片有的文字,两者形式的数据提取方法不同。此时通过分支判断功能判断是图片还是文字,然后转到不到分支里进行提取数据。


判断条件功能页面介绍:


判断条件1


什么时候执行分支:可设置出现的某个特殊字眼(文本)或某个元素执行该分支。该文本或元素只在某一情况下会出现,若设置的字眼或元素不唯一则会导致进入的分支与设想的不同

 

不判断,总是执行该分支:默认选中此项,一般是最右边的分支为此项,若最左边的分支设置为此项则永远不会执行右边的分支,且最右边的分支不管设置什么都会执行,即如果所有条件都不满足时将会执行最右边的分支步骤


当前页面包含文本:选中后,在下方文本框中填入进入本分支的特殊文本(字眼),八爪鱼将会在当前全页面查找这个文本,找到则执行该分支,反之不执行

 

当前循环项包含文本:选中后,在下方文本框中填入进入本分支的特殊文本,八爪鱼将会在当前循环项中找这个文本,找到则执行该分支,反之不执行。此项需与循环配套使用

 

当前页面包含元素:选中后,在下方文本框中填入进入本分支的特殊元素(Xpath路径),八爪鱼将会在当前全页面找这个元素,找到则执行该分支,反之不执行

 

当前循环项包含元素:选中后,在下方文本框中填入进入本分支的特殊元素(XPath路径),八爪鱼将会在当前循环项中找这个元素,找到则执行该分支,反之不执行此项需与循环配套使用


在Iframe里,IframeXpath:同点击元素的元素在Iframe里,IframeXpath,需要填入Iframe的Xpath,不是定位元素的Xpath,是Iframe的Xpath(该操作很少使用,无必要请莫用)

 

操作示例:


    采集要求:采集论坛第一页的所有“发布”贴,其余不采集


    示例网址:http://www.discuz.net/forum-plugin-1.html


操作步骤:


    1、先按常规流程制作采集流程,当遇到需要设置判断条件的步骤时,点击右上角“流程”。(完成打开网页和循环点击等操作后进入到详情页,此时需要设置判断条件,判断该页面是否包含“发布”这个关键词)
   

    2、进入流程设计页面后,从流程图左侧工具栏拖入一个“判断条件”进入流程图中,放到需要判断的位置。判断条件2 1


    3、设置判断条件(该条件应具有唯一性),本示例中采用的判断方式为“当前页面包含文本”(采用何种判断方式诸位请根据实际情况灵活运用)。在矩形框中输入文字“发布”作为判断依据。然后点击“确定”保存,至此该分支的判断条件设置完毕。Ps:默认对左侧分支设置判断条件,满足条件时则执行该分支内的操作。


判断条件3 2


    4、设置其他操作(如点击元素,提取数据等等),本示例中直接进行数据的提取,无其他操作,用户可根据需求设置。此外,因采集要求是只采“发布”类型的帖子,其他不采集。所以右侧分支可以不进行判断条件的设置,默认留空即可。


判断条件4 3


A.可以从流程图左侧工具栏拖入一个提取数据到分支中,然后点击要提的数据进行数据提取。B.也可以直接在网页中进行数据的提取的,但此时生成的“提取数据”可能不在分支内,需将其拖入分支中。点击选中“提取数据”,拖入分支,放在出现的绿色加号位置即可。


判断条件5

 

   

    5.所有操作设置完毕后,点击保存。然后进行本地采集,观察采集结果。本地采集无误后再进行云采集。


判断条件6

 

重要补充:

1)、分支判断默认从左往右执行,先判断左边的条件,若左边的分支均不满足条件,最右边的分支将不做判断直接执行。


2)、如果不同的分支内有不同的提取元素步骤,必须将每个分支内总共的提取元素步骤内的字段名个数设置为相同

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

情况1:
分支2内没有提取数据步骤,这个流程可以正常执行


情况2:
分支2内有提取数据步骤,提取的字段为字段a,字段b,字段c;此时流程将不能正常执行。因为八爪鱼采集器执行分支1时提取不到字段abc,分支2的提取步骤都无法提取到数据,八爪鱼采集器判断此条数据不完整,将此条数据作废不保存。

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


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


3)、八爪鱼中允许某个分支中无任何操作步骤。


4)、对于需要同时判断多个条件,则需要嵌套使用多个分支判断。但建议将已选好判断条件后的网址放入八爪鱼中采集数据。此外当有case when时,可以用多分支实现,复制黏贴即可。


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


6)、判断条件的“与”和“或”可以通过XPath中的“|”和“&”实现。