定位标志批量采集相同定位信息

2015-11-20 12:16| 发布者: ym| 查看: 13472| 评论: 4

摘要: 定位标志使用巧妙的话,能够有样例复制的效果,把网页上相同定位的信息都采下来,其核心就是通过映射属性节点(具有id/class值)来实现精准定位。 技巧: 只做内容映射的话,一旦网页结构发生细微改变,都会导致规则 ...

定位标志使用巧妙的话,能够有样例复制的效果,把网页上相同定位的信息都采下来,其核心就是通过映射属性节点(具有id/class值)来实现精准定位。

技巧:
     只做内容映射的话,一旦网页结构发生细微改变,都会导致规则失效,而最好的技巧就是把内容映射与定位标志映射结合使用,可以大大降低失效的风险,下面介绍结合两者使用并实现样例复制的操作方法。

教程规则:房天下采集全国租房电话二级        样本网页:http://zu.sz.fang.com/


一、 创建好规则的整理箱结构
     这里不细讲制作规则的基本操作,请学习制作规则入门教程


二、 对抓取内容既做内容映射又做定位标志映射
     内容映射只能把元素节点(无下层节点)映射给抓取内容,如果要把DOM区块节点(有下层节点)做内容映射,就要在高级设置里勾选文本内容,所以,根据这两种情况,有以下两种操作顺序:

1、操作顺序:定位标志映射 -> 内容映射
     (1)如果抓网页文本的话,只做定位标志映射就够了,但再做内容映射会使定位更加精准。
     (2)点击网页的租房标题,定位到的A节点没有id/class值,显然无法作为定位标志节点,这种情况,往上层找到属性节点P,右击做定位标志映射。

(3)做完定位映射后,其定位编号依然为-1,高级设置会被自动设置为只抓文本内容,要做内容映射的话,只能选DOM区块节点(有下层节点)。这里可选P或A节点 ,选择A节点可以缩小范围,选 P节点则没有变化,选择#text的话请看后面第2种操作顺序。
     注意:做了内容映射后的变化可通过数据规则/输出信息窗口进行观察。

2、操作顺序:内容映射 -> 定位标志映射
     (1)本案例中,租房网址存在于@href节点,需要精确地映射这个节点,而不是像第1种操作顺序可以选择DOM区块节点,这种情况,就要先做内容映射,后做定位标志映射。
     (2)找到租房网址对应的@href节点,右击选择内容映射->网址;然后往上层找到包容@href的属性节点P,右击选择定位标志映射->网址。

此时,点击测试,可以看到单条信息,后面还要对容器节点做定位标志映射才能实现样例复制,但也有一些结构特殊的网页,可能已经实现了样例复制的效果。


三、对容器节点做定位标志映射实现样例复制的效果
     1、对容器节点做定位标志映射
     找到框住一整块信息(橙框部分)的属性节点DL,右击做定位标志映射给样例。
     注意:对于同时具有id值和class值的属性节点,映射后是优选id值作为定位标志。

2、修改定位标志类型
     每一条租房信息对应的DL节点的id值是变化的,用id值做定位标志就只能得到一条租房信息,但是, class值却是相同的,所以,把定位类型修改为class,就能实现样例复制,操作:双击整理箱的样例,勾选class并保存,定位标志就变成class值。

3、对顶点做定位标志缩小采集范围
     此时,点击测试已实现样例复制的效果,但为了缩小采集范围,对整理箱顶点也做定位标志映射,操作:往上找到包容这些兄弟节点的属性节点,做定位标志映射给顶点,修改定位标志类型。
     注意:如果id/class值包含数字,建议选择不包含数字的定位标志值,因为数字通常是变化的。


四、如何用定位标志映射对样例复制进行优化
     1、按照样例复制操作的话,爬虫路径是由软件自动生成的,不一定是最好的,如下图,起点路径中选择了@id='rentid_B04_02'做为起点标志,前面说过,包含数字的属性值是多变的,所以,这种爬虫路径的适应性较弱,容易采集失败。

2、所以,我们建三层结构的整理箱,对顶点做定位标志映射,就能改变起点路径,使规则增强适应性,如下图。可见,内容映射、定位标志映射和样例复制三者的巧妙结合,能够优化爬虫路径,解决很多网页采集不完整或缺漏的情况。



若有疑问可以集搜客网络爬虫
10

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (10 人)

相关阅读

发表评论

最新评论

评论 数据集二期 2018-1-4 15:47
lucasivan: 还是可以的 请问你们在这个行业能排进前十名吗
在爬虫领域,这款软件可以排进前十。
评论 lucasivan 2018-1-4 15:22
还是可以的 请问你们在这个行业能排进前十名吗
评论 Fuller 2016-10-4 22:43
earthcooco: 没怎么看懂
这篇文章讲了一些技巧,主要用于提高规则的适应性,不是基础教程。要想看基础教程的话,建议从这篇开始:http://www.gooseeker.com/doc/article-325-1.html
评论 earthcooco 2016-10-4 22:32
没怎么看懂

查看全部评论(4)

GMT+8, 2024-10-16 14:38