请输入
菜单

XPath实例1:循环列表-过滤多余的项

我们通过创建【循环列表】去采集多个列表或详情页的数据。创建【循环列表】的方式在 新手入门系列课程 中有详细讲过。

一般情况下,通过以上方法创建的【循环列表】不会出错,能够精准采集到全部数据。但有时候也会遇到一些问题:比如列表中有的部分不是我们想要的,需要进行丢弃。

这时候,可以手动修改XPath去定位列表丢弃不需要的部分。也可以用分支判断丢弃。

以下通过实例进行说明。

实例网址:https://www.ebidding.cecep.cn/jyxx/001006/001006001/7.html

一、用XPath过滤多余的项

Step1:按照常规操作创建流程

这个网页采集列表信息,我们按登录网站后常规的采集列表的方法创建循环列表。

 

Step2:手动执行规则

 

配置好后,手动执行规则发现:当页面处于第一页时,所有列表都被选中了采集,观察发现有的列表名称已经作废,如果我们只需要采集未作废的列表内容,需要过滤掉项目名称是null[已作废]的

这里通过修改【循环列表】XPath进行筛选。

 

Step3:修改【循环列表】XPath

进入【循环列表】的设置页面,修改xpath为//span[@class="go-txt" and not(contains(text(),"null"))]/../../..

修改前循环列表是定位到了全部的10条列表元素,修改后循环列表定位到了8条,成功过滤掉了项目名为null[已作废]的列表

 

 

这里为什么要改用这个xpath呢,观察列表,我们发现这个可以通过限制项目名称来达到过滤的目的,//span[@class="go-txt" and not(contains(text(),"null"))]/../../..  ,这个xpath达到的效果即找到不包含null的标题,然后符号\.. 表示返回父级标签,\..\..表示返回到父级的父级标签,以此类推下去。

 

这里总结一下:当发现列表定位过多,需要过滤多余的项,就需要修改【循环列表】的定位XPath

 

如何修改需要一定的XPath知识,请看之前的 XPath系统学习教程 

 

 

二、分支判断丢弃不需要的列表数据

 

Step1:按照常规操作创建流程

 

同上面所讲述方法一致,我们按登录网站后常规的采集列表的方法创建循环列表。

 

Step2:添加判断条件

 

1.如下所示添加判断条件

 

 

 

 2.左侧分支条件勾选【当前循环项包含元素】,然后填入xpath://span[@class="go-txt" and not(contains(text(),"null"))]

3.把提取数据拖入左侧分支条件,右侧分支不设置提取数据。

 

 

 提示:

 关于判断设置,可学习判断条件教程

最近修改: 2024-01-15