Python中使用Selenium WebDriver如何实现整个页面的截图?
网上看的的例子,
中文的也就这个页面例子为主了,其它 blog 什么的,都是转载这个的:
https://blog.csdn.net/miaomiao_zhang/article/details/86237195
如果是用 webdriver.Ie(),是否有例子可以看看怎么实现整个页面,需要几个 PageDwon 才能看完的截图?
Python中使用Selenium WebDriver如何实现整个页面的截图?
4 回复
我知道有截图 api 但是忘了。。。
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
import time
def capture_full_page_screenshot(url, save_path):
"""
捕获整个网页的完整截图
参数:
url: 要截图的网页URL
save_path: 截图保存路径(包含文件名,如'screenshot.png')
"""
# 设置Chrome选项
chrome_options = Options()
chrome_options.add_argument('--headless') # 无头模式,不显示浏览器窗口
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox')
# 初始化WebDriver
service = Service('chromedriver的路径') # 需要替换为你的chromedriver路径
driver = webdriver.Chrome(service=service, options=chrome_options)
try:
# 访问网页
driver.get(url)
time.sleep(2) # 等待页面加载
# 获取页面总高度
total_height = driver.execute_script("return document.body.scrollHeight")
# 设置浏览器窗口大小为页面总高度
driver.set_window_size(1920, total_height)
# 等待一下确保页面渲染完成
time.sleep(1)
# 保存截图
driver.save_screenshot(save_path)
print(f"截图已保存到: {save_path}")
finally:
# 关闭浏览器
driver.quit()
# 使用示例
if __name__ == "__main__":
# 示例:截图百度首页
capture_full_page_screenshot(
url="https://www.baidu.com",
save_path="baidu_full_page.png"
)
这个方法的关键点:
- 用
document.body.scrollHeight获取页面总高度 - 把浏览器窗口高度设为页面总高度
- 用
save_screenshot()保存截图
注意:需要先安装selenium(pip install selenium)并下载对应浏览器版本的webdriver。
简单说就是获取页面高度然后调整窗口大小再截图。
webdriver.ie()折腾不了,结题了。。
browser = webdriver.Chrome(‘D:\ProgramFiles\chromedriver-74.exe’)
browser.save_screenshot(‘printscreen.png’)

