美文网首页Python,web开发,前端技术分享大数据 爬虫Python AI Sql码农的世界
Python学习笔记(7)定位标志精确采集范围——以安居客租房采

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

作者: 2890bd62c72a | 来源:发表于2019-08-14 22:15 被阅读4次

一、操作步骤

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

二、案例规则+操作步骤

第四步:定位标志

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节点范围下的节点做定位标志映射才是有效的。

如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的!交流经验!自己是一名高级python开发工程师,从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

相关文章

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/ghdkjctx.html