Python学习笔记(7)定位标志精确采集范围——以安居客租房采集为例

一、操作步骤

如果是通过直接标注信息生成的规则,虽然用它能采集到样本网页的数据,但是批量采集同类网页时就可能采集失败,这是因为简单标注得到的数据规则不太通用,还要人工调整优化。这种情况下做定位标志映射可以提高数据规则的精确度和适应性,降低网页变化带来的影响。下面用安居客网作为案例,操作步骤如下:

二、案例规则+操作步骤

第四步:定位标志

4.1,点击标题进行定位,做定位标志映射的节点它必须要有属性值(id或class值),如果定位到的节点没有属性值就往上层找。在本例中,找到的div节点有属性值@class=zu-info,可以作为定位标志值。

4.2,右击DIV节点,选择“定位标志映射”->“标题”,映射后,在整理箱的定位标志和类型这两列,可以看到zu-info和+class,表示把@class=zu-info的节点映射给了标题,这时,标题既有内容映射又有定位标志映射。

4.3,重复4.1和4.2步骤,对整理箱的其他抓取内容也做定位标志映射。

第五步:存规则,抓数据

5.1,规则测试成功后,点击“存规则”;

5.2,点击“爬数据”,弹出DS打数机,开始抓数据。

Tips1:有以下两种情况需要调整一下定位类型。

1、如果做定位标志映射的节点同时有id值和class值,要选择与同类网页相同的那个属性值,这样才能实现批量化采集。所以需要人工选择属性的类型。操作:整理箱里双击抓取内容,定位标志类型选择“id”或者“class”,这个修改是对单个抓取内容生效的。

2、如果抓到空白信息或错位信息,需要调整整理箱的定位,选择合适的定位类型,通常选择“绝对定位”可以解决,这个修改是对整理箱生效的。

Tips2:对整理箱顶点或者容器节点做定位标志映射可以精确采集范围,避免采集到错位信息。

如果要采集页面上不同模块的信息,最好是建立多层嵌套的整理箱结构,一个容器节点负责采集一个模块,并且对整理箱顶点和容器节点都做上定位标志映射,这样就能互不干扰地精确采集各个模块的信息,避免采集到错位信息。

Tips3:下面是定位标志的使用范围。

1、定位标志虽然不是必须的,但会大大提高规则的精确度和适用性。

2、整理箱都做内容映射后,同一个定位标志值可以映射给多个抓取内容。

3、当一个抓取内容做了样例复制后,不能再做定位标志映射给它。

4、当一个抓取内容做了样例复制,其下级抓取内容要选择样例1节点范围下的节点做定位标志映射才是有效的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值