快捷导航

多层嵌套样例复制

2015-10-30 17:08| 发布者: HJLing| 查看: 4089| 评论: 8

摘要: 一个网页上结构相同的数据有很多条,就需要做一个样例复制来批量采集。但是有些网页相同结构的数据又分别包含在不同区块节点中,这种情况下,需要做两次样例复制或更多次(由实际情况决定),即嵌套整理箱的样例复制 ...

一个网页上结构相同的数据有很多条,就需要做一个样例复制来批量采集。但是有些网页相同结构的数据又分别包含在不同区块节点中,这种情况下,需要做两次样例复制或更多次(由实际情况决定),即多层嵌套的样例复制。

以抓取新浪新闻为例http://roll.sky.news.sina.com.cn/index/index_1.shtml,网页上每5条新闻存放在一个区块节点中,如果按照样例复制教程只做样例复制,只会抓取到当前区块节点下的这5条新闻。然而页面上一共显示35条新闻,分放在7个区块节点中,为了将页面上的所有新闻抓取下来,需要再对包含新闻的区块节点做样例复制。

注释:本文所演示的嵌套整理箱样例复制,可到资源库下载学习:嵌套整理箱样例复制

一、 建立多层嵌套的整理箱

图1

如图1所示,具体操作如下

1. 新建第一级整理箱,用来为包含新闻的区块节点做样例复制。

2. 右击第一级整理箱,选择包含包创建第二级整理箱,用来为每条新闻做样例复制。

3. 右击第二级整理箱,选择包容创建抓取内容,抓取每条新闻的标题,发布时间。

这样就形成了嵌套整理箱,可以做两次样例复制,顺序是从里到外。

二、先对内层做样例复制

图2

如图2所示,具体操作如下

1.点击第二级整理箱

2.勾选启用,启用 样例复制 功能。

3.分别找到第一个商品 和 第二个商品 对应的节点。

4.右击 第一条新闻对应节点 样例复制的 “第一个” 映射到 样例1。

5.右击 第一条新闻对应节点 样例复制的 “第二个” 映射到 样例2。

由上图可以看出,一个UL区块节点里包含5个LI节点,一个LI节点对应的就是一条新闻,现在只是对一个UL里的LI做了样例复制,只能抓取当前UL下的新闻,也就是只能抓取5条新闻。为了将所有新闻抓取下来,下面我们对UL也做一次样例复制。

三、 再对外层做样例复制

图3

如图3所示,具体操作如下

1.点击第一级整理箱

2.勾选启用,启用 样例复制 功能。

3.将第一个UL和第二个UL分别做样例复制映射到“第一个”和“第一个”

这样就可以将页面上所有的新闻都抓取下来了。

16

鲜花
3

握手

雷人

路过

鸡蛋

刚表态过的朋友 (19 人)

相关阅读

发表评论

最新评论

评论 Fuller 2016-7-1 20:41
可以三层以上
CQQKIE: 可不可以做三层?
评论 CQQKIE 2016-7-1 20:14
可不可以做三层?
评论 Fuller 2016-2-22 14:53
langzimou: 如何创建二级整理箱?
如果你的目的是建立两级抓取,那么两级的抓取规则各做各的,第二级就像做一个新规则一样
评论 Fuller 2016-2-22 12:35
langzimou: 如何创建二级整理箱?
建立的抓取内容一开始是普通节点,如果选中它,点鼠标右键,选择 添加-》包容,就会在它内部建立一个新的抓取内容节点,而它就成了容器节点,这样就变成两级了
评论 langzimou 2016-2-22 11:55
如何创建二级整理箱?
评论 wangyong 2015-11-25 11:52
wanghaijian9: . 右击第一级整理箱,找不到包含包创建第二级整理箱是怎么回事
右击第一级整理箱,选择包容新创建的就是第二级整理箱
评论 gooseeker_info 2015-11-24 23:51
第一张图上,选中某个抓取内容,点击鼠标右键,能看到菜单:添加-〉包容,就能在选中的抓取内容下创建一个子节点,这样就把当前内容变成了一个容器节点
评论 wanghaijian9 2015-11-24 23:22
. 右击第一级整理箱,找不到包含包创建第二级整理箱是怎么回事

查看全部评论(8)

集搜客GooSeeker网络爬虫 ( 粤ICP备11065265号-2 )

GMT+8, 2017-7-24 12:48