selenium实现无限滚动、循环滚动到底

今天做python动态网页觉得构造请求太麻烦,而网站几次滚动就能下拉到底,所以想着直接用selenium连续下拉滚动到底,然后直接一把梭。没搜到太好太直接的方案。边做边试大概实现了功能。

核心代码就这么几句,思路就是用scrollBy一直下拉滚动条,然后scrollTop会一直变化,当scrollTop不变时,说明就到底了。跳出循环即可。

import time
from lxml import etree
from selenium import webdriver


driver =webdriver.Chrome()

#定义一个初始值
temp_height=0

while True:
    #循环将滚动条下拉
    driver.execute_script("window.scrollBy(0,1000)")
    #sleep一下让滚动条反应一下
    time.sleep(5)
    #获取当前滚动条距离顶部的距离
    check_height = driver.execute_script("return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;")
    #如果两者相等说明到底了
    if check_height==temp_height:
        break
    temp_height=check_height
    print(check_height)
driver.quit()

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值