一、操作步骤
如果是通过直接标注信息生成的规则,虽然用它能采集到样本网页的数据,但是批量采集同类网页时就可能采集失败,这是因为简单标注得到的数据规则不太通用,还要人工调整优化。这种情况下做定位标志映射可以提高数据规则的精确度和适应性,降低网页变化带来的影响。下面用安居客网作为案例,操作步骤如下:
![](https://img.haomeiwen.com/i18901380/90aca28af1d7d622.png)
![](https://img.haomeiwen.com/i18901380/95f32c9a54bde30b.png)
二、案例规则+操作步骤
- 样本网址:http://sz.zu.anjuke.com/?pi=baidu-cpchz-sz-tyong1&kwid=8248540023&utm_term=%E6%B7%B1%E5%9C%B3+%E7%A7%9F%E6%88%BF%E7%BD%91
- 采集内容:标题、价格、地点、格局
第四步:定位标志
4.1,点击标题进行定位,做定位标志映射的节点它必须要有属性值(id或class值),如果定位到的节点没有属性值就往上层找。在本例中,找到的div节点有属性值@class=zu-info,可以作为定位标志值。
4.2,右击DIV节点,选择“定位标志映射”->“标题”,映射后,在整理箱的定位标志和类型这两列,可以看到zu-info和+class,表示把@class=zu-info的节点映射给了标题,这时,标题既有内容映射又有定位标志映射。
![](https://img.haomeiwen.com/i18901380/70ee0f5042cb8ed9.png)
4.3,重复4.1和4.2步骤,对整理箱的其他抓取内容也做定位标志映射。
![](https://img.haomeiwen.com/i18901380/a6426bec54f066f4.png)
第五步:存规则,抓数据
5.1,规则测试成功后,点击“存规则”;
5.2,点击“爬数据”,弹出DS打数机,开始抓数据。
![](https://img.haomeiwen.com/i18901380/cea1fe94a171cf9b.png)
Tips1:有以下两种情况需要调整一下定位类型。
1、如果做定位标志映射的节点同时有id值和class值,要选择与同类网页相同的那个属性值,这样才能实现批量化采集。所以需要人工选择属性的类型。操作:整理箱里双击抓取内容,定位标志类型选择“id”或者“class”,这个修改是对单个抓取内容生效的。
![](https://img.haomeiwen.com/i18901380/abe73049aed74d1c.png)
2、如果抓到空白信息或错位信息,需要调整整理箱的定位,选择合适的定位类型,通常选择“绝对定位”可以解决,这个修改是对整理箱生效的。
![](https://img.haomeiwen.com/i18901380/a535568f63c3e503.png)
Tips2:对整理箱顶点或者容器节点做定位标志映射可以精确采集范围,避免采集到错位信息。
如果要采集页面上不同模块的信息,最好是建立多层嵌套的整理箱结构,一个容器节点负责采集一个模块,并且对整理箱顶点和容器节点都做上定位标志映射,这样就能互不干扰地精确采集各个模块的信息,避免采集到错位信息。
![](https://img.haomeiwen.com/i18901380/93483b76b11288f0.png)
Tips3:下面是定位标志的使用范围。
1、定位标志虽然不是必须的,但会大大提高规则的精确度和适用性。
2、整理箱都做内容映射后,同一个定位标志值可以映射给多个抓取内容。
3、当一个抓取内容做了样例复制后,不能再做定位标志映射给它。
4、当一个抓取内容做了样例复制,其下级抓取内容要选择样例1节点范围下的节点做定位标志映射才是有效的。
如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的!交流经验!自己是一名高级python开发工程师,从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地
网友评论