安装注册
模板采集
自定义入门
循环
ajax与新标签
XPath
特殊翻页
提取数据
数据导出
云采集
其他功能点
滚动加载数据采集方法
2020-03-10
7003
有很多网站,需要向下滚动页面,才能加载出新数据。那相对应的,在八爪鱼中也需设置【页面滚动】。
【页面滚动】一般有两种情况:【直接滚动到底部】和【向下滚动一屏】。
一、【直接滚动到底部】
适用场景:将滚动条直接下来到网页底部,出现类似【加载中】字样,稍后马上有新数据出现,且滚动条变短回弹。
常见的网页:今日头条首页、百度图片搜索、新浪微博首页,都是这种情况。
鼠标放到图片上,右键,选择【在新标签页中打开图片】可查看高清大图
下文其他图片同理
以今日头条首页为例。https://www.toutiao.com/,我们需采集新闻列表数据。就需要在打开网页后不断向下滚动,加载新数据。
在八爪鱼中怎么实现呢?以下为具体操作步骤。
步骤一、创建一个采集任务
可以使用【智能识别】,也可以用 第3课:采集列表数据 中学到的方法,自行配置采集任务。这里使用【智能识别】,可以自动识别网页上的数据和滚动,如下图所示。
步骤二、调整滚动次数、每次间隔时间
将鼠标移动到【打开网页】步骤上,点击 按钮,进入步骤设置页面。此网页是无限滚动的,八爪鱼自动为我们设置了【滚动次数】90次、【每次间隔】1秒。大家可根据实际需求进行调整。【每次间隔】时间需稍大于网页上数据加载的时间(网页上数据加载的时间又跟网速等因素有关)。
为方便演示,在这里,设置【滚动次数】5次。
启动采集来看一下采集结果。八爪鱼自动执行了【直接滚动到底部】5次,然后采集滚动5次后的数据。
特别说明:
1、此网页是无限向下滚动加载数据的,八爪鱼无法一次采集到所有数据。上面示例是设置了滚动5次,实际采集过程中可根据需求来设置滚动次数。
2、此类网页常见于数据实时性高的新闻类网站,在八爪鱼中可以使用云采集,设置定时启动,少量多次采集最新数据。
3、有时候网页很快,类似【加载中】的提示不明显。【是否有新数据出现】、【观察滚动条的回弹次数】是比较好用的判断标准,请注意观察网页。
二、【向下滚动一屏】
适用场景:数据需在当前屏幕中展示一段时间,才能完全加载出来,进而才能被采集到。
常见的网页:今日头条首页、百度图片搜索、新浪微博首页,都是这种情况。
以京东商品列表为例。https://search.jd.com/Search?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&suggest=1.his.0.0&wq=&pvid=1b312c8afe2845bd94fe55ff1b6165a8,我们想要采集全部商品列表。先按之前列表数据采集的方法,配置采集任务。下面是一个配置好的任务,其中特别注意【图片链接】这个字段。
启动采集看一下采集结果。我们发现【图片链接】这个字段没有采集到。
返回流程,手动执行一下采集流程。我们发现,主图在当前屏幕中展示出来时(循环中的第1、2、3项),其链接可以被采集到。主图不在当前屏幕中展示出来时(循环中更靠后的项),其链接采集不到。
说明我们需要在八爪鱼中进行相同设置。将鼠标移动到【打开网页】步骤上,点击 按钮,进入步骤设置页面。勾选滚动方式为【向下滚动一屏】,【滚动次数】10次、【每次间隔】2秒。
这里的【滚动次数】和【每次间隔】,大家可根据实际需求进行调整。【每次间隔】时间需稍大于网页上数据加载的时间(跟网速等因素有关)。
再次启动采集来看一下。八爪鱼自动执行了【向下滚动一屏】10次,全部60个商品列表的主图都得以在当前屏幕中展示2秒,主图链接也被正常采集下来了。
特别说明:
a. 如果某一个字段或者某几项数据没采集到,可以手动执行规则去检查一下,很有可能就是需要设置【向下滚动一屏】。
b. 示例中滚动次数设为10次,就能将所有列表都在当前屏幕中展示一遍了。实际采集过程中,根据网页情况具体设置采集次数。
c. 【向下滚动一屏】的一屏,跟运行采集任务时的窗口展示区域有关。如下图,左侧滚动的一屏 > 右侧滚动的一屏。
作者:Aisling
编辑:Aisling