【8.0】处理滚动加载数据的网页
2019-11-05 14:20:00 阅读量: 15681
有很多网站,页面中的数据,是需要向下滚动页面,才能加载出来的。那相对应的,在八爪鱼中也需设置【页面滚动】。
如何判断网页是否需要设置【页面滚动】?【页面滚动】的滚动方式、滚动次数和每次间隔如何设置?
本教程将讲解【页面滚动】的设置方法与常见应用场景。
一、【直接滚动到底部】
如果将滚动条直接拉到底部,出现类似【加载中】的字样,稍后马上有新数据出现,且滚动条变短回弹,则需设置【直接滚动到底部】,【滚动次数】根据网页本身情况和采集需求来设置,【每次间隔】时间需稍大于数据加载时间,跟网速等因素有关。
常见应用场景1:无翻页按钮,需不断向下滚动,加载出新数据。常见的网页有:今日头条首页、百度图片搜索、新浪微博首页。
以今日头条首页为例。https://www.toutiao.com/,我们需采集新闻列表数据。先按之前列表数据采集的方法,配置采集任务。
鼠标放到图片上,右键,选择【在新标签页中打开图片】可查看高清大图
下文其他图片同理
观察网页发现,此网页无翻页按钮,将滚动条不断直接拉到底部,出现【加载中】的字样,稍后马上有新数据出现,且滚动条变短回弹。
在八爪鱼中也可验证这一点。默认打开网页,【循环列表】中的新闻是6项。滚动到底部1次,新加载出来数据,【循环列表】中的新闻增加至24项。再滚动到底部1次,【循环列表】中的新闻增加至34项。
所以,我们需要在八爪鱼中设置【页面滚动】。选中【打开网页】步骤,打开【高级选项】,勾选【页面加载完成后向下滚动】,设置【滚动次数】5次、【每次间隔】2秒、【滚动方式】为【直接滚动到底部】。然后点击【确定】保存。
启动采集来看一下采集结果。八爪鱼自动执行了【直接滚动到底部】5次,然后采集滚动5次后的数据。
特别说明:
a. 此网页是无限向下滚动加载数据的,八爪鱼无法一次采集到所有数据。上面示例是设置了滚动5次,实际采集过程中可根据需求来,建议不超过x次。
b. 此类网页常见于数据实时性高的新闻类网站,在八爪鱼中可以设置定时启动,少量多次采集最新数据。
c. 有时候网页很快,类似【加载中】的提示不明显。【是否有新数据出现】、【观察滚动条的回弹次数】是比较好用的判断标准。
二、【向下滚动一屏】
还有的数据,需要在当前屏幕中展示一段时间,才能完全加载出来,进而被采集到。则需设置【向下滚动一屏】,【滚动次数】根据网页本身情况和采集需求来设置,【每次间隔】时间需稍大于数据加载时间,跟网速等因素有关。
常见应用场景1:数据需在当前屏幕中展示一段时间,才能完全加载出来,进而才能被采集到。
以京东商品列表为例。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