selenium自动向下滚动页面,并指定最大滑动距离
需要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自动向下滚动页面,并指定最大滑动距离相关推荐
- 使用Selenium慢慢向下滚动页面
我正试图从航班搜索页面抓取一些数据. 此页面以这种方式工作: 你填写一个表格,然后你点击按钮搜索 – 这没关系.当您单击该按钮时,您将被重定向到包含结果的页面,这就是问题所在.这个页面连续添加结果,例 ...
- 从一个页面跳转到用swiper写的全屏滚动页面的指定位置
问题背景 从一个页面跳转到用swiper写的全屏滚动页面的指定位置,怎么实现啊? 案例 我没有自己写一个全屏滚动,就在Swiper官网找了Swiper在PC端的全屏页面效果展示 若有侵权请留言告知我更 ...
- html页面怎么加向下滚动,如何使用jQuery向上或向下滚动页面到锚点?
如何使用jQuery向上或向下滚动页面到锚点? 我正在寻找一种方法来包含幻灯片效果,当您单击页面上或下的本地锚点链接时. 我想要一个你有这样一个链接的东西:link text, img etc. 也许 ...
- android 自动上下翻滚,如何让Android TextView自动向下滚动到最后?
我有一个TextView,其内容从文本文件中复制.现在每次将文本文件的内容加载到TextView中时,我都希望它自动向下滚动到最后. 这是我的布局XML文件的部分内容: android:id=&quo ...
- html div跟随页面滚动条滚动,javascript – 当我向下滚动页面时,如何让div跟随我?...
您可以在窗口对象上挂钩scroll事件.处理事件时,请查看窗口/文档的垂直滚动位置(有关如何操作,请参阅SO上的 this answer).对div使用绝对定位,并根据需要将其顶部更新为坐标. FWI ...
- 微信小程序让屏幕自动向下滚动
微信小程序开发交流qq群 173683895 承接微信小程序开发.扫码加微信. 正文: wx.pageScrollTo(OBJECT) 基础库 1.4.0 开始支持,低版本需做兼容处理 将页 ...
- QT textedit 滚动条自动往下滚动
用textedit接受数据,但是超过当前文本大小后不会跟着走就看不见最新接收的数据,用这种方法每当有新数据,将自动滚动到底部: 选中textedit右键转到槽,选择textChanged(),然后在弹 ...
- 向下滚动页面导航悬浮
为什么80%的码农都做不了架构师?>>> 做两个导航,第二个隐藏 下拉到一定位置,显示第二个,position:fixed $(function(){$(window).scr ...
- Vue:滚动页面到指定位置实现避坑笔记
方法: mounted(){document.getElementById("Ebody").scrollIntoView( {behavior:"smooth" ...
最新文章
- 简述进程的启动、终止的方式以及如何进行进程的查看。
- PHPCMS V9自定义分页函数
- 重构之SqlHelper
- Oracle数据库之集合运算
- linux 用户与用户发邮件,Linux自动向指定用户发送邮件
- linux如何修改网卡序号,CentOS双网卡时改变网卡编号和配置静态路由的方法
- 合并bin文件-----带boot发布版本比较好用的bat(便捷版)
- Java 生态碎片化 和 .NET生态的一致性
- IDEA连接mysql出现时区错误_idea连接数据库时区错误
- python解图片迷宫_[宜配屋]听图阁
- java 方法绑定_java 方法调用绑定
- 简单算法系列之完数的计算
- C# 正则表达式大全
- TASKCTL用户权限如何设置
- 形式语言与自动机 下推自动机
- 电机驱动软件学习笔记——数据打包解包CRC校验
- Windows 10文件/文件夹正在使用无法删除的6个解决方法
- 游轮旅游是三亚旅游的未来
- 《进击的虫师》爬取豆瓣电影海报Top250(2020年10月23日更新)
- 如何实现web浏览器无插件播放视频监控直播?
热门文章
- python如何创建一个类_python 3——自定义一个类、object类
- MapInfo MapXtreme 2005 WebGIS 简单鹰眼设计(转)
- 基于大数据的餐饮推荐系统总结
- Linux下安装配置vsftpd
- Linux安装配置tomcat
- Flash如何为文字描边
- 手把手叫你一台电脑配置两个Git账户
- Gradle Issue: OutOfMemoryError: PermGen space
- Enterprise Vault 10.0.4 FOR Exchange2013 部署之三-日记邮件归档
- 将学校版JAVA系统迁移到Mysql数据库的工作安排