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

2023年9月5日 28点热度 0人点赞 0条评论

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

 

 

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

 

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

 

 

以下通过实例进行说明。

 

实例网址:https://weibo.com/2803301701?refer_flag=1001030103_

 

 

一、用XPath过滤多余的项

 

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

 

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

 

 

 

Step2:手动执行规则

 

配置好后,手动执行规则发现:当页面处于第一页时,所有博文都选中了采集,如果我们只想要带视频的博文内容,就需要把纯文字或带图片的博文丢弃。

 

这里通过修改【循环列表】XPath筛选只包含视频的博文。

 

 

 

Step3:修改【循环列表】XPath

 

进入【循环列表】的设置页面,修改xpath为//a[@class="WB_video_h5"]/../../../..

修改点击应用后可以发现之选中了包含视频的博文。

 

 

 

 

这里为什么要改用这个xpath呢,因为我们要去找包含视频博文特有的xpath,通过观察可以发现视频特有的xpath是//ul[@class="WB_media_a WB_media_a_m1 clearfix"] 

然后符号\.. 表示返回父级标签,\..\..表示返回到父级的父级标签,以此类推下去。

 

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

 

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

 

 

 

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

 

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

 

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

 

 

Step2:添加判断条件

 

 

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

 

 

 

 2.左侧分支条件勾选【当前循环项包含元素】,然后填入xpath://ul[@class="WB_media_a WB_media_a_m1 clearfix"] 

 

 

3.把提取数据拖入左侧分支条件,从而实现采集视频的博文。右侧分支不设置提取数据。

 

 

 

 提示:

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

 

 

365crawadmin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论