定位标志映射——以采集58同城租房信息为例

2015-10-12 14:45| 发布者: ym| 查看: 17729| 评论: 0

摘要: 定位标志映射提高规则适用性 定位标志主要为了提高抓取网页的精度和适应度。在一些研究工作中,需要很精确地抓取需要的数据,例如,抓取帖子评论数、发布时间等等,抓取不准确会干扰分析结果。因为不少网站为了保护 ...
观看视频教程

定位标志映射提高规则适用性

定位标志主要为了提高抓取网页的精度和适应度。例如采集微博博文的话,需要精确地限定博文信息的网页范围,这样就避免采集到无用信息,而且,不少网站为了保护数据(反爬虫)会定期调整网页结构,做标志映射的话可以提高规则的适应性和降低网页变化带来的影响,维护抓取规则的频度和工作量也随之减少。


注释:本文所演示的翻页抓取规则,可到资源库下载学习:集搜客中级_定位标志映射

图1 定位标志映射

图1步骤分解:

  1. 找到包容标题的区块节点,并且要有属性值(即id值或class值),在这里,定位的A节点就有属性值@class=t,可以作为定位标志值。
  2. 右击弹出菜单,选择“定位标志映射”->“标题”,映射后,在整理箱的定位标志和类型这两列,可以看到t和+class,表示把@class=t的节点映射给了标题,这时,标题既有内容映射又有定位标志映射。
  3. A节点也包容网址节点@href,所以,也把A节点的标志值映射给网址,右击选择“定位标志映射”->“网址”,如果能找到合适的定位标志值就可以做定位标志映射,但这并不是必须的。


设置定位偏好

请注意:最新版本把定位偏好操作变成了一个按钮,放在校验按钮下面,方便大家使用,不再像下图那样放在右键弹出菜单中了。

如果一个区块节点同时有id值和class值,可以通过设置首选项来选择定位偏好,方法为:右击整理箱,选择“首选项”->“偏好id”/“偏好class”,如图2。

图2 设置定位首选项

注意:

图3

图3显示所有的信息属性都进行了定位标志映射,需要说明的是:

  1. 没有必要为每个抓取内容都做定位标志映射,而是有合适的定位标志才使用
  2. 定位标志一定要位于所选样例的DOM块内部,而不应该将其它样例的DOM块内的标志映射给样例
  3. 同一个定位标志值可以映射给多个抓取内容,例如,标题和网址的节点都是位于DOM节点A[@class='t']下,而且不存在其它的能够区别两者的不同的定位标志,则可使用同一个定位标志值
  4. 如果网页结构中存在相同的标志值,那么就可能会定位失败,这种情况,就要具体分析了,或许选择上层且唯一的标志值就可以,又或许需要做自定义xpath。

经过标志映射后,生成的抓取规则只有稍许改变,而且点击测试按钮看到的抓取结果没有改变:只抓取了样本数据,如图3。

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

鲜花

握手

雷人
1

路过
5

鸡蛋

刚表态过的朋友 (6 人)

相关阅读

最新评论

GMT+8, 2024-12-5 05:15