吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1026|回复: 11
收起左侧

[Python 原创] selenium判断页面是否到底

[复制链接]
knighthood 发表于 2024-4-18 14:38

实现该功能,首先你最好先最大化网页,可以使用driver.maximize_window()进行该操作。

from selenium import webdriver
import time

driver = webdriver.Chrome()

# url = "https://www.xiaohongshu.com/user/profile/6520e7d10000000024017cfc"
url = "https://www.xiaohongshu.com/user/profile/6262794f000000002102a1e4"
# 访问某个网页
driver.get(url)  # 使用驱动实例打开指定的网页
driver.maximize_window()

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

# 等待20秒
time.sleep(20)  
# 清理资源
driver.quit()  # 关闭浏览器驱动实例,释放资源

这段代码是使用 Selenium WebDriver 来自动模拟网页滚动的过程,并且在滚动到页面底部时停止。下面是对代码的逐行解释:

  1. driver.get(url): 使用 Selenium WebDriver 实例(driver)打开指定的网页(url)。

  2. driver.maximize_window(): 将浏览器窗口最大化,以确保能够显示整个页面内容。

  3. temp_height = 0: 初始化一个变量 temp_height,用于保存上一次滚动条的位置。

  4. while True:: 开启一个无限循环,直到满足条件跳出循环。

  5. driver.execute_script("window.scrollBy(0,600)"): 使用 JavaScript 在当前窗口向下滚动600个像素。这一步实现了向下滚动页面的操作。

  6. time.sleep(1): 通过 time.sleep() 函数等待1秒,让页面滚动后有时间加载新的内容。这可以确保页面滚动的平稳性。

  7. check_height = driver.execute_script("return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;"): 使用 JavaScript 获取当前滚动条距离页面顶部的距离,并将其保存在 check_height 变量中。这个表达式兼容了不同浏览器的获取方式。

  8. if check_height == temp_height:: 检查当前滚动条的位置与上一次滚动条位置是否相等,如果相等,说明页面已经滚动到底部了。

  9. temp_height = check_height: 将当前滚动条的位置更新到 temp_height 变量中,以备下一次循环使用。

  10. print(check_height): 打印当前滚动条距离页面顶部的距离,用于调试和观察滚动过程中的位置变化。

通过这段代码,你可以模拟用户在浏览器中向下滚动页面的操作,并且在滚动到页面底部时停止。

这里的话,你可以直接使用我这的代码,去试试你那个网页是否能成功。

免费评分

参与人数 2吾爱币 +8 热心值 +2 收起 理由
laozhang4201 + 1 + 1 热心回复!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

asqwe1 发表于 2024-4-19 10:03
本帖最后由 asqwe1 于 2024-4-19 10:07 编辑

提供一种方法:
body = drive.find_element(By.CSS_SELECTOR, "body")
body.send_keys(Keys.END)  
判断body.text  跟上一次加载的是否一样,内容是否有改变。
xs502xs502 发表于 2024-4-18 17:03
tianmenghuan 发表于 2024-4-18 17:29
zjg121 发表于 2024-4-18 17:50
这代码很好,很用处。我以前滚动网页,到底了,还不能停下来,太费时间了。学习了。
cxx0515 发表于 2024-4-18 18:08
感谢楼主分享,收藏了,谢谢
wynhbh 发表于 2024-4-22 08:36
感谢分享,正好用到。
lingqixzw 发表于 2024-4-23 11:21
asqwe1 发表于 2024-4-19 10:03
提供一种方法:
body = drive.find_element(By.CSS_SELECTOR, "body")
body.send_keys(Keys.END)  

都是大神!
gs129090 发表于 2024-4-23 14:42
感谢分享
巧言乱德 发表于 2024-4-23 16:36
asqwe1 发表于 2024-4-19 10:03
提供一种方法:
body = drive.find_element(By.CSS_SELECTOR, "body")
body.send_keys(Keys.END)  

用body去判断是否在最底下吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-12 09:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表