我目前正在使用 Python 中的 Firefox 驱动程序 Selenium 对滚动进行硬编码,无论如何它可以在页面上平滑地上下滚动吗?随着页面中图像的加载,该页面可以比正常情况大 20 倍。
我需要多次上下滚动,不要错过页面的任何部分。
当前方法效率不高,有时不会滚动到页面的某些部分。 以下是我目前的代码
browser = webdriver.Firefox()
browser.get(link)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.4);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.5);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.7);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.8);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.2);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.3);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.5);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.7);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/4.9);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/5.2);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/5.1);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/5.8);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/3.7);")
time.sleep(0.2)
browser.execute_script("window.scrollTo(0, document.body.scrollHeight/50);")
time.sleep(0.2)
最佳答案
如果在 Python 中使用 Selenium,您可以使用它...
scheight = .1
while scheight < 9.9:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight/%s);" % scheight)
scheight += .01
或者类似的东西。您可以添加 if
制动器以在 while
中的特定 scheight
位置捕获数据。只需根据需要制作 +=
或迭代。我使用了 .01,所以我可以直观地看到它滚动,否则你需要超时并且它会显得不稳定。取决于您的需要。
关于python - 使用 Selenium 滚动页面的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19803963/