一、操作步骤
如果是通过直接标注信息生成的规则,虽然用它能采集到样本网页的数据,但是批量采集同类网页时就可能采集失败,这是因为简单标注得到的数据规则不太通用,还要人工调整优化。这种情况下做定位标志映射可以提高数据规则的精确度和适应性,降低网页变化带来的影响。下面用安居客网作为案例,操作步骤如下:
二、案例规则+操作步骤
- 采集内容:标题、价格、地点、格局
第四步:定位标志
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节点范围下的节点做定位标志映射才是有效的。