如何使用selenium一直拖动浏览器的滚动条

本文探讨了在使用Selenium进行网页自动化时,如何通过JavaScript执行滚动操作来不断加载新数据的问题。作者遇到一种情况,即某些网站在多次滚动后停止刷新,可能与服务器响应速度有关。为解决这个问题,作者尝试了两种不同的JavaScript执行方式:一种是直接设置文档滚动位置,另一种是通过定位页面底部的图片元素并使其进入视口来实现滚动。这两种方法对于抓取页面上的所有图片链接特别有用。
摘要由CSDN通过智能技术生成

现在遇见一个问题,需要通过selenium不断向下刷新页面获取新数据。

之前看到的一些方法,主要就是让selenium执行js:

js = "var q=document.documentElement.scrollTop=100000"
driver.execute_script(js)

但是发现有的网站,滚动几次之后就不能继续刷新了,具体原因还未找到,可能和服务器响应过慢有关。后来找到如下方法,也是执行js,只不过对象不同。

ac = driver.find_element_by_xpath('(//a[@class="js-photo-link photo-item__link"])[last()]')
driver.execute_script("arguments[0].scrollIntoView();", ac)

我遇见的情况是需要拿到所有的图片链接,所以第一行代码的意思就是,每次找到当前加载的页面中,最后一个图片的链接所在的element;因为浏览器展示区域有限,所以第二行代码就会自动向下找该元素,以此达到向下翻页的效果

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值