Automa选择网页定位锚点的办法

在使用Automa插件爬取数据的时候经常会遇到锚点选择困难的情况


通常我们使用Automa自带的瞄准镜来选取定位采集数据的锚点,但是经常会遇到选择不准的情况,特别是在循环采集的时候,调试比较麻烦。下面介绍一个选择锚点的方法,就是根据属性值,直接定位锚点。

在这里插入图片描述
1、以百度大数据为例,在需要采集的“热度”数值上点右键,选“检查”菜单项,定位到“热度”这个文本对应的代码,可以看到 124570热度 ,那么 class=“text_1bZ-b” 就是这个字段的类名称,就可以用这个属性的名称来定位。在这里插入图片描述
2、在CSS选择器中写上 [class=‘text_1bZ-b’]即可,顺便把【多选】和【等待选择器】选上,采到的数据放入表格中,实测这里不需要再使用{{loopData@loopid}}来循环了,数据一样能采集到。

在这里插入图片描述
3、流程图是这样的,在采集第一个文本时,是用了 {{loopData@bvUOjB}}.c-color 来循环采集的,第二个文本如第2点所述,没有使用循环参数了。在这里插入图片描述.4、同理,对于各个锚点的定位,可以采用各种属性来定,例如使用id来定位,就在CSS选择器里面输入#kw,这里kw就是这个点位的id,各种属性可看下图参考。
在这里插入图片描述
5、一种方法始终不能包打天下
在采集学科分类时又发现了问题,[本科][理科][心理学类] 这三个字段的id居然是相同的,都是[class=‘tag_2vGZg’],这样的话采集又遇到了问题。用瞄准镜观察,三个字段对应的三个锚点分别是:
div:nth-child(1) > a li:nth-child(1)
div:nth-child(1) > a li:nth-child(2)
div:nth-child(1) > a li:nth-child(3)
这里使用 a li:nth-child(3) 作为CSS选择器的填入内容,并且顺便选上【多选】【等待选择器】,不需要写循环参数,实测采集正常。
在这里插入图片描述
6、Xpath来定位也是一个不错的选择
需要熟悉Xpath的定位知识,采集的数据比较进准清爽。
Xpath的教程

遇到有些格式不规范的表格,数据采集时需要用到多重条件的定位,相当于是要用两种条件来定位,那么下面这两个方法很好用,更多用法详见下面链接。

//title[@lang]选取所有拥有名为 lang 的属性的 title 元素。
//title[@lang=‘eng’]选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。
实操例子1:
//div[@class=“third-list-item-title”]选取div元素,且这些元素拥有值为third-list-item-title的class属性。
实操例子2:
//div[@class=“third-list-item-title”][@data-spm-anchor-id=“5176.21040285.J_9110863210.i1.28406908yDP2lK”]选取div元素,且这些元素拥有值为third-list-item-title的class属性。并且拥有值为5176.21040285.J_9110863210.i1.28406908yDP2lK的data-spm-anchor-id属性
实操例子3:
//*[@id=“zjxxEsDiv”]/table/tbody/tr/td[last()-2]/span[@cname][@cparam][@title]选取div元素,且这些元素拥有值为zjxxEsDiv的id属性。后面span拥有值为cname、cparam、title属性,这里面的技巧是使用了 td[last()-2],由于表格设计的格式可能不规范,在爬取时从前往后找数据,第一个总是错位,会误采集,但从后往前采集却没有问题,这样就用这个方法,找倒数的第几个,问题就解决了。有了这个语法,遇到大多数的定位问题都不是问题了。
以上实例实测可用,完美解决Automa中使用两种条件定位的需求。

XPath 语法

好的办法有很多,这些方法也是在CSDN里面看来的,觉得好用,就整理了放在这里存着。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值