gpt4 book ai didi

python - 如何使用 Selenium 检查是否进一步 `scroll down` 是不可能的

转载 作者:行者123 更新时间:2023-12-05 05:20:19 26 4
gpt4 key购买 nike

我正在使用 Selenium + python 废弃一个具有无限滚动的页面(基本上滚动直到显示最多前 500 个结果)

使用下面的代码,我可以滚动到页面底部。现在我想在进一步滚动不获取任何内容时停止。 (比如说,页面只有 200 个结果,假设最多 500 个结果,我不想继续滚动)

driver = webdriver.Firefox()
driver.get(url)
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

我尝试访问 window.pageYOffset 但它总是以 None 出现。

最佳答案

我将 Selenium 与 Chrome 一起使用,而不是 Firefox,但以下方法对我有用:

  1. 在向下滚动之前捕获页面高度;
  2. 使用向下键向下滚动;
  3. 向下滚动后捕获页面高度;
  4. 如果滚动前后页面高度相同,则停止滚动

我的代码是这样的:

import time
from selenium import webdriver
from selenium.webdriver import Chrome
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get("www.yourTargetURL.com")

reached_page_end = False
last_height = driver.execute_script("return document.body.scrollHeight")

while not reached_page_end:
driver.find_element_by_xpath('//body').send_keys(Keys.END)
time.sleep(2)
new_height = driver.execute_script("return document.body.scrollHeight")
if last_height == new_height:
reached_page_end = True
else:
last_height = new_height

driver.quit()

关于python - 如何使用 Selenium 检查是否进一步 `scroll down` 是不可能的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44721009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com