网页数据获取时需要翻页或下拉


可以确定总共有多少页

捕获最后一页页码数字元素:

或者类似“共XXX页”的文字元素:

此时需要从“共100页”文本中提取数字:

在批量数据抓取指令中选择抓取多页并在抓取页数中填入获取这个页数:

或者用“for次数循环”循环固定的次数,在循环中点击翻页按钮:


不确定总共有多少页

需要翻页抓取所有数据,但是总页数不确定的情况。

按下 F12 查看下一页元素的源代码(参考在开发者工具中定位元素的小技巧),发现下一页按钮可以点击时,这个元素的属性 class 中不包含 disabled,不可点击时(最后一页时)则包含 disabled


方法①

捕获元素时,通过元素编辑使这个元素限制条件可以同时找到这两种状态的元素,可以通过使用变化的属性(在这里是 class)之外的属性确定这个元素,也可以将变化的属性用正则表达式通配起来:

然后在无限循环中判断这个通用的元素的某个属性,如果这个属性符合条件(在这里是包含 disabled),就退出循环,停止抓取数据:


方法②

捕获元素时,使得这个元素限制条件只能找到可以正常点击的下一页元素,比如在元素编辑时勾选上有区别的元素,比如这里勾选 class:

然后在循环中判断这个元素是否存在(捕获的这个元素不能校验最后一页上的下一页按钮因为勾选的 class 属性不匹配),如果找不到这个元素,就退出循环:


需要下拉才能加载出所有元素

情况① 需要点击“加载更多”按钮

先点击“加载更多”按钮,直到所有元素都被加载出来后,再进行数据抓取。


情况② 滚动到底部时自动加载

数据在网页滚动到底部时自动加载。鼠标滚动网页到底部使得数据继续加载,判断鼠标滚动前后元素数量是否一致,如果一致就退出循环。然后抓取数据。

鼠标滚动网页后,可以适当等待一下网页加载完成(等待指令)。


技巧① 滚到底部时有固定提示

网页滚动到底部时,可能有“没有更多了”、“到底啦”、“下载 app 查看更多”之类的提示,可以用这些元素是否存在作为判断依据。


技巧② 点击页脚上的固定元素来滚动到最后

影刀点击网页元素时,如果这个元素可以找到但没有在当前窗口显示,会自动滚动到那个元素所在的位置,用点击页脚上没有点击效果的元素可以做到快速滚到到最后的效果。


下拉时永远只能校验到一部分元素

参考网页懒加载场景和解决方案

问题没有解决?去社区提问 all right reserved,powered by Gitbook

results matching ""

    No results matching ""