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

 

列表是最常见的网页样式之一。例:京东商品列表,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、编辑字段

 

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

1、删除不需要的字段。选中字段,再点击垃圾桶图标将其删除。

2、修改字段名称。字段名称相当于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