Python学习笔记(14) 多层嵌套样例复制

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

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

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

如图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分别做样例复制映射到“第一个”和“第一个”

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值