关于使用selenium鼠标移动加载全部页面数据

此处采用函数执行鼠标滑动操作,最终完成动态数据的加载(懒加载)

原理:设置 一个空列表用于存储每次鼠标拖动后的瞬间页面最大高度。每次追加页面的最新高度

在每次拖动后,重新去获取一下,当前页面的最大高度

如果获取的页面最大高度等于了列表最后的那个最大高度,说明页面到底了,跳出循环。

否则会将当前获取的最大页面添加到列表中去,继续比较。

    def mouse_move(self):       # 滑动鼠标至底部操作
        all_window_height = []  # 创建一个列表,用于记录每一次拖动滚动条后页面的最大高度
        all_window_height.append(self.web.execute_script("return document.body.scrollHeight;"))  # 当前页面的最大高度加入列表
        while True:
            self.web.execute_script("scroll(0,100000)")  # 执行拖动滚动条操作
            sleep(3)
            check_height = self.web.execute_script("return document.body.scrollHeight;")  # 当前页面的最大高度
            if check_height == all_window_height[-1]:  # 判断拖动滚动条后的最大高度与上一次的最大高度的大小,相等表明到了最底部
                break
            else:
                all_window_height.append(check_height)  # 如果不想等,将当前页面最大高度加入列表。

 

posted @ 2019-06-03 18:22  青红*皂了个白  阅读(787)  评论(0编辑  收藏  举报