需要selenium控制的chrome向下滑动,自动加载一些内容,核心代码是:

browser.execute_script("window.scrollBy(0,300)")

这行可以向下滑动300个像素

需要的工具函数如下:

def roll_window_to_bottom(browser, stop_length=None, step_length=500):"""selenium 滚动当前页面,向下滑:param browser: selenium的webdriver:param stop_length: 滑动的最大值:param step_length: 每次滑动的值"""original_top = 0while True:  # 循环向下滑动if stop_length:if stop_length - step_length < 0:browser.execute_script("window.scrollBy(0,{})".format(stop_length))breakstop_length -= step_lengthbrowser.execute_script("window.scrollBy(0,{})".format(step_length))time.sleep(0.5 + random.random())  # 停顿一下check_height = browser.execute_script("return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;")if check_height == original_top:  # 判断滑动后距顶部的距离与滑动前距顶部的距离breakoriginal_top = check_height

使用示例

from selenium import webdriver
import time
import randomdef roll_window_to_bottom(browser, stop_length=None, step_length=500):"""selenium 滚动当前页面,向下滑:param browser: selenium的webdriver:param stop_length: 滑动的最大值:param step_length: 每次滑动的值"""original_top = 0while True:  # 循环向下滑动if stop_length:if stop_length - step_length < 0:browser.execute_script("window.scrollBy(0,{})".format(stop_length))breakstop_length -= step_lengthbrowser.execute_script("window.scrollBy(0,{})".format(step_length))time.sleep(0.5 + random.random())  # 停顿一下check_height = browser.execute_script("return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;")if check_height == original_top:  # 判断滑动后距顶部的距离与滑动前距顶部的距离breakoriginal_top = check_heightdef main():option = webdriver.ChromeOptions()option.add_argument('lang=zh_CN.UTF-8')  # 设置browser = webdriver.Chrome(chrome_options=option, desired_capabilities={"page_load_strategy": "none"})browser.get("http://news.baidu.com/")roll_window_to_bottom(browser, stop_length=700)if __name__ == '__main__':main()

selenium自动向下滚动页面,并指定最大滑动距离相关推荐

  1. 使用Selenium慢慢向下滚动页面

    我正试图从航班搜索页面抓取一些数据. 此页面以这种方式工作: 你填写一个表格,然后你点击按钮搜索 – 这没关系.当您单击该按钮时,您将被重定向到包含结果的页面,这就是问题所在.这个页面连续添加结果,例 ...

  2. 从一个页面跳转到用swiper写的全屏滚动页面的指定位置

    问题背景 从一个页面跳转到用swiper写的全屏滚动页面的指定位置,怎么实现啊? 案例 我没有自己写一个全屏滚动,就在Swiper官网找了Swiper在PC端的全屏页面效果展示 若有侵权请留言告知我更 ...

  3. html页面怎么加向下滚动,如何使用jQuery向上或向下滚动页面到锚点?

    如何使用jQuery向上或向下滚动页面到锚点? 我正在寻找一种方法来包含幻灯片效果,当您单击页面上或下的本地锚点链接时. 我想要一个你有这样一个链接的东西:link text, img etc. 也许 ...

  4. android 自动上下翻滚,如何让Android TextView自动向下滚动到最后?

    我有一个TextView,其内容从文本文件中复制.现在每次将文本文件的内容加载到TextView中时,我都希望它自动向下滚动到最后. 这是我的布局XML文件的部分内容: android:id=&quo ...

  5. html div跟随页面滚动条滚动,javascript – 当我向下滚动页面时,如何让div跟随我?...

    您可以在窗口对象上挂钩scroll事件.处理事件时,请查看窗口/文档的垂直滚动位置(有关如何操作,请参阅SO上的 this answer).对div使用绝对定位,并根据需要将其顶部更新为坐标. FWI ...

  6. 微信小程序让屏幕自动向下滚动

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 正文: wx.pageScrollTo(OBJECT) 基础库 1.4.0 开始支持,低版本需做兼容处理 将页 ...

  7. QT textedit 滚动条自动往下滚动

    用textedit接受数据,但是超过当前文本大小后不会跟着走就看不见最新接收的数据,用这种方法每当有新数据,将自动滚动到底部: 选中textedit右键转到槽,选择textChanged(),然后在弹 ...

  8. 向下滚动页面导航悬浮

    为什么80%的码农都做不了架构师?>>>    做两个导航,第二个隐藏 下拉到一定位置,显示第二个,position:fixed $(function(){$(window).scr ...

  9. Vue:滚动页面到指定位置实现避坑笔记

    方法: mounted(){document.getElementById("Ebody").scrollIntoView( {behavior:"smooth" ...

最新文章

  1. 简述进程的启动、终止的方式以及如何进行进程的查看。
  2. PHPCMS V9自定义分页函数
  3. 重构之SqlHelper
  4. Oracle数据库之集合运算
  5. linux 用户与用户发邮件,Linux自动向指定用户发送邮件
  6. linux如何修改网卡序号,CentOS双网卡时改变网卡编号和配置静态路由的方法
  7. 合并bin文件-----带boot发布版本比较好用的bat(便捷版)
  8. Java 生态碎片化 和 .NET生态的一致性
  9. IDEA连接mysql出现时区错误_idea连接数据库时区错误
  10. python解图片迷宫_[宜配屋]听图阁
  11. java 方法绑定_java 方法调用绑定
  12. 简单算法系列之完数的计算
  13. C# 正则表达式大全
  14. TASKCTL用户权限如何设置
  15. 形式语言与自动机 下推自动机
  16. 电机驱动软件学习笔记——数据打包解包CRC校验
  17. Windows 10文件/文件夹正在使用无法删除的6个解决方法
  18. 游轮旅游是三亚旅游的未来
  19. 《进击的虫师》爬取豆瓣电影海报Top250(2020年10月23日更新)
  20. 如何实现web浏览器无插件播放视频监控直播?

热门文章

  1. python如何创建一个类_python 3——自定义一个类、object类
  2. MapInfo MapXtreme 2005 WebGIS 简单鹰眼设计(转)
  3. 基于大数据的餐饮推荐系统总结
  4. Linux下安装配置vsftpd
  5. Linux安装配置tomcat
  6. Flash如何为文字描边
  7. 手把手叫你一台电脑配置两个Git账户
  8. Gradle Issue: OutOfMemoryError: PermGen space
  9. Enterprise Vault 10.0.4 FOR Exchange2013 部署之三-日记邮件归档
  10. 将学校版JAVA系统迁移到Mysql数据库的工作安排