第2课:采集单个数据 中,我们学习了 如何从单个网页抓取文本、图片、超链接,对八爪鱼【自定义配置】任务采集数据的过程有了初步体会。本课将继续深入学习如何采集多个列表中的数据。

 

列表是最常见的网页样式之一。例:京东商品列表,58同城房源列表,豆瓣图书列表。经过简单配置,八爪鱼可以自动采集全部列表中的数据。

 

现在有一个豆瓣图书列表的网页:https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4。网页上有很多结构相同的图书列表,每个图书列表中有同样的字段:图书标题、出版信息、评分、评价人数、图书简介等。

 

 

鼠标放到图片上,右键,选择【在新标签页中打开图片】可查看高清大图

下文其他图片同理

 

我们想将上述网页上多个列表中的字段,按照网页排列顺序依次采集下来,保存为Excel等结构化的数据,如下图所示:

 

 

在八爪鱼中该如何操作?示例网址:https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4

 

一、智能识别

列表型的网页,八爪鱼支持智能识别。使用智能识别,只需输入网址,就能自动获取数据,并生成采集流程。

 

二、自行配置采集流程

如果想要自行配置采集流程,怎么办?以下为具体步骤:

 

步骤一、输入网址

在首页【输入框】中输入目标网址,点击【开始采集】,八爪鱼自动打开网页。如果自动开始智能识别,可点击【不再自动识别】或【取消识别】。如果已关闭智能识别,可进行接下来的步骤。

 

 

步骤二、建立【循环-提取数据】

 

观察网页。此网页上有很多图书列表,每个列表结构相同,都包含图书标题、出版信息、评分、评价人数、图书简介等字段。最关键的点在于,如何让八爪鱼识别所有列表,并按顺序依次采集每个图书列表中的数据。

在八爪鱼中,建立【循环-提取数据】可实现此需求。【循环-提取数据】会包含所有的图书列表,并按顺序依次采集每个图书列表中的数据。对于列表型网页,建立【循环-提取数据】需特定步骤,下面为具体步骤。

 

先看一个建立【循环-提取数据】的完整步骤

 

 

再拆分每个步骤,进行详情说明:

 

1、选中页面上1个图书列表。选中后的列表会被绿色框框起来,同时出现黄色操作提示框,提示我们发现了【子元素】,这里的【子元素】就是图书列表中的具体字段。

 

 

特别说明:

a. 选中1个列表即可,第几个无所谓,第1个,第2个,第3个,都行。

b. 在选中列表时,需特别注意范围。选中的范围(绿色部分)需最大,包含要采集的所有字段。

 

 

2、在黄色操作提示框中,选择【选中子元素】。第1个商品列表中的具体字段就被选中了,这时八爪鱼发现页面中还有很多同类列表具有相同的子元素(即字段)。

 

 

3、在黄色操作提示框中,继续选择【选中全部】。我们是想要采集所有列表中的字段的,所以选择【选中全部】,可以看到页面中所有同类列表中的子元素都被选中了,用绿色框框起来。

 

 

4、在黄色操作提示框中,选择【采集数据】。这时候,八爪鱼就将列表中的字段都提取下来了。

 

 

特别说明:

a. 步骤1-4是连续指令,连续不中断,才能建立【循环-提取数据】。如果 1、选中页面上1个列表 后,没有出现 2、【选中子元素】怎么办?请下拉至文末查看解决方法。

 

经过以上4步,【循环-提取数据】创建完成。可以看到,流程图中自动生成了1个循环步骤。循环中的项,对应着页面上所有商品列表。循环中的提取数据中的字段,对应着每个商品列表中的字段。启动采集以后,八爪鱼就会按照循环中的顺序依次提取每个列表中的字段。

 

步骤3、编辑字段

 

八爪鱼自动为我们提取了列表中的所有字段,可以对这些字段进行删除、修改字段名称等操作。

鼠标移到【提取列表数据】步骤上,点击  按钮,进入步骤的设置页面。

移动到字段名称上,可修改字段名(字段名称相当于excel表头)。

点击垃圾桶图标,可删除不需要的字段。

 

 

步骤4、启动采集

 

1、点击【保存并启动】,选择【启动本地采集】。启动后八爪鱼开始全自动采集数据。(本地采集是使用自己的电脑进行采集,云采集是使用八爪鱼提供的云服务器采集,点击查看具体说明

 

 

2、采集完成后,选择合适的导出方式导出数据。支持导出为Excel、CSV、HTML。这里导出为Excel。

 

 

数据示例:

 

 

步骤二、建立【循环-提取数据】时,1、选中页面上1个列表 后,没有出现 2、【选中子元素】解决办法:

 

示例网址:https://s.weibo.com/weibo/%25E8%2583%25A1%25E6%25AD%258C?topnav=1&wvr=6&b=1

 

先看一个建立【循环-提取数据】的完整步骤

 

 

再拆分每个步骤,详细说明:

 

1、选中页面上第1个列表

2、继续选中页面上的1个列表(目的是帮助八爪鱼识别页面中的所有同类列表)。

3、在黄色操作提示框中,选择【采集数据】。列表中的所有字段被提取到一个单元格中。如果需要分开提取,继续进行下面的操作。

4、手动提取需要的字段。一定要在当前选中的列表中(用红色框框起来)提取字段。否则会重复提取第1个列表中的数据。

 

 

通过上面的4步,【循环-提取数据】也能够创建完成。可以看到,流程图中自动生成了1个循环步骤。循环中的项,对应着页面上所有微博列表。循环中的提取数据中的字段,对应着每个微博列表中的字段。启动采集以后,八爪鱼就会按照循环中的顺序依次提取每个列表中的字段。

 

 

【循环-提取数据】创建完成以后,接下来的步骤与上面相同,不再赘述。

 

 

既要采集列表数据,有要点击列表中的链接,进入详情页,采集详情页中的数据,解决方法:

 

1、先用本课上文中学到的方法,建立一个【循环-提取数据】步骤,先提取列表数据

2、在循环的当前项(用红色框框起来)中找到链接并选中,在弹出的操作提示框中,选择【点击该链接】。可以看到流程中生成了1个【点击元素】步骤,八爪鱼自动跳转到了详情页,然后提取详情页数据即可。

 

 

特别说明:

a. 一定要用循环的当前项(如下图,当前项目会用红色框框起来)的链接做【点击元素】步骤,否则会重复点击某一个链接。

 

 

作者:Aisling
编辑:Aisling