教程视频,加载成功的数据量 小于 页面实际总数据量。
懒加载
:没有进入可视区域的数据,暂时不加载出来,之前的数据依旧显示。
虚拟列表
:只加载可视区域的数据,之前的数据也不加载。
懒加载
处理方法:下拉到最后,再一次性抓取。
有固定结束元素
在无限循环中使用「鼠标滚动网页」,直到评论全部加载完成后(B站评论区会出现“没有更多评论”),退出循环。
如果没有判断结束的标识文字,但每页有固定显示数量的,就在无限循环前设置一个变量列表,将循环到的数据保存到列表中,通过通过判断len(总数量列表)是否大于一个固定值就退出无限循环。
每页数据量固定
无固定结束元素1
如果每页的元素数量不固定,就无限滚动页面,直到相似元素组长度不再变化。
无固定结束元素2
通过判断用户的元素的唯一属性,比如 data_user_id
或者 uia_uid
(值为唯一),每滚动一次抓取最后一个进行比较,如果相等就表示下拉结束。
虚拟列表
处理方法:边下拉,边抓取。
微信联系人列表,只能抓取当前显示的十来个,之前的和之后的都不能批量获取相似元素。
有固定结束元素
先设置一个数据总表的list,无限循环将当前抓取的保存到新列表,再将新列表合并到数据总表,再去重,得到全部联系人。(出现固定字样时退出无限循环)
有总数量
通过「通讯录管理」进行抓取。如果没有固定的结束元素,可以判断 len()
联系人数和总人数相等时,退出循环。(7 8 9 获取联系人总数)
无固定结束元素
如果没有固定的结束元素,也不知道数据总量。
无限循环,直接 len()
数据总数量不再变化,再退出循环。
无固定结束元素
监控可以唯一定位的属性值的变化。
每个联系人的名称都是不同的,判断最后一个联系人是否发生变化。如果没有变化则退出循环。
扩展
将显示器无限增大,直到能在一屏包含全部数据时,就可以了。
ps. 适合总长度较小的数据列表。
2024年1月30日