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

作者: 2890bd62c72a | 来源:发表于2019-08-17 15:29 被阅读1次

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

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

如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的!交流经验!自己是一名高级python开发工程师,从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

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

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

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

相关文章

网友评论

    本文标题:Python学习笔记(14) 多层嵌套样例复制

    本文链接:https://www.haomeiwen.com/subject/ygdrjctx.html