教程视频,加载成功的数据量 小于 页面实际总数据量。

懒加载:没有进入可视区域的数据,暂时不加载出来,之前的数据依旧显示。

虚拟列表:只加载可视区域的数据,之前的数据也不加载。

懒加载

处理方法:下拉到最后,再一次性抓取。

有固定结束元素

在无限循环中使用「鼠标滚动网页」,直到评论全部加载完成后(B站评论区会出现“没有更多评论”),退出循环。

如果没有判断结束的标识文字,但每页有固定显示数量的,就在无限循环前设置一个变量列表,将循环到的数据保存到列表中,通过通过判断len(总数量列表)是否大于一个固定值就退出无限循环。

每页数据量固定

无固定结束元素1

如果每页的元素数量不固定,就无限滚动页面,直到相似元素组长度不再变化。

无固定结束元素2

通过判断用户的元素的唯一属性,比如 data_user_id 或者 uia_uid (值为唯一),每滚动一次抓取最后一个进行比较,如果相等就表示下拉结束。

虚拟列表

处理方法:边下拉,边抓取。

微信联系人列表,只能抓取当前显示的十来个,之前的和之后的都不能批量获取相似元素。

有固定结束元素

先设置一个数据总表的list,无限循环将当前抓取的保存到新列表,再将新列表合并到数据总表,再去重,得到全部联系人。(出现固定字样时退出无限循环)

有总数量

通过「通讯录管理」进行抓取。如果没有固定的结束元素,可以判断 len() 联系人数和总人数相等时,退出循环。(7 8 9 获取联系人总数)

无固定结束元素

如果没有固定的结束元素,也不知道数据总量。

无限循环,直接 len() 数据总数量不再变化,再退出循环。

无固定结束元素

监控可以唯一定位的属性值的变化。

每个联系人的名称都是不同的,判断最后一个联系人是否发生变化。如果没有变化则退出循环。

扩展

将显示器无限增大,直到能在一屏包含全部数据时,就可以了。

ps. 适合总长度较小的数据列表。

2024年1月30日