You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python截取浏览器网页完整全屏截图(含可视区域下方)

Python实现网页完整全屏截图方案

方法1:优化Selenium实现完整截图

你已经在用Selenium,只需调整窗口尺寸匹配页面实际高度,就能截取完整页面,无需额外工具包。

步骤要点:

  • 用JavaScript获取页面的完整宽高
  • 将浏览器窗口设置为该尺寸后再截图
  • 若页面存在滚动加载内容,先触发滚动等待加载完成

示例代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

options = Options()
options.add_argument("--headless=new")  # 无头模式,不需要可视化窗口时开启
driver = webdriver.Chrome(options=options)

# 打开目标网页
driver.get("https://example.com")

# 滚动到底部触发动态加载(如果页面有滚动加载内容)
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(2)  # 根据页面加载速度调整等待时间

# 获取页面完整宽高
page_width = driver.execute_script("return document.body.scrollWidth")
page_height = driver.execute_script("return document.body.scrollHeight")

# 设置浏览器窗口为页面完整尺寸
driver.set_window_size(page_width, page_height)

# 保存完整截图
driver.save_screenshot("full_page_selenium.png")

driver.quit()

方法2:使用Playwright(推荐,更稳定)

Playwright是微软推出的自动化工具,原生支持完整页面截图,无需手动调整窗口,对动态加载、长页面的处理更省心。

  1. 安装依赖:
pip install playwright
playwright install  # 安装浏览器驱动
  1. 示例代码:
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    # 启动浏览器,headless=True表示无头模式
    browser = p.chromium.launch(headless=True)
    page = browser.new_page()
    page.goto("https://example.com")
    # full_page=True参数自动截取完整页面
    page.screenshot(path="full_page_playwright.png", full_page=True)
    browser.close()

方法3:使用Pyppeteer(基于Puppeteer的Python封装)

Pyppeteer是Chrome官方工具Puppeteer的Python版本,同样支持完整页面截图,采用异步方式运行。

  1. 安装依赖:
pip install pyppeteer
  1. 示例代码:
import asyncio
from pyppeteer import launch

async def capture_full_screenshot():
    browser = await launch(headless=True)
    page = await browser.newPage()
    await page.goto("https://example.com")
    # fullPage=True截取完整页面
    await page.screenshot({"path": "full_page_pyppeteer.png", "fullPage": True})
    await browser.close()

asyncio.get_event_loop().run_until_complete(capture_full_screenshot())

总结

  • 若已在使用Selenium,优先尝试方法1,无需额外安装工具;
  • 处理复杂页面(动态加载、超长页面)时,Playwright是更稳定的选择,代码更简洁;
  • Pyppeteer适合熟悉异步编程的场景。

内容的提问来源于stack exchange,提问作者thomas kayll

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 14:13:12