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

如何用Python及CLI在无GUI Linux服务器上实现原生网页截图

如何用Python截取网页截图(无GUI环境)及CLI方案

Python原生实现(适配无GUI Linux服务器)

1. Selenium + Chrome Headless

  • 依赖安装:先通过pip install selenium安装Selenium,再在Linux服务器上安装无头Chrome及对应驱动,比如Debian/Ubuntu系统可执行apt install chromium-browser chromium-chromedriver,注意Chrome与ChromeDriver版本需匹配。
  • 代码示例:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

def capture_screenshot(url, output_path):
    chrome_options = Options()
    chrome_options.add_argument("--headless=new")  # 启用新版无头模式
    chrome_options.add_argument("--no-sandbox")    # 适配服务器无沙箱环境
    chrome_options.add_argument("--disable-dev-shm-usage")  # 解决临时空间不足问题
    chrome_options.add_argument("--window-size=1920,1080")   # 设置截图分辨率

    with webdriver.Chrome(options=chrome_options) as driver:
        driver.get(url)
        driver.save_screenshot(output_path)

# 调用示例
capture_screenshot("https://example.com", "screenshot.png")

2. Playwright(更简洁的无头方案)

  • 依赖安装:执行pip install playwright后,运行playwright install chromium自动下载适配的无头Chromium浏览器,无需手动管理驱动。
  • 代码示例:
from playwright.sync_api import sync_playwright

def capture_screenshot(url, output_path):
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=True)
        page = browser.new_page(viewport={"width": 1920, "height": 1080})
        page.goto(url, wait_until="networkidle")  # 等待网络空闲,确保页面加载完成
        page.screenshot(path=output_path, full_page=True)  # 支持截全页
        browser.close()

# 调用示例
capture_screenshot("https://example.com", "full_page_screenshot.png")

CLI捕获网站截图的方法

1. Chrome Headless 命令行

直接通过无头Chrome的命令行参数完成截图,无需编写代码:

# 截取指定分辨率的页面截图
chromium-browser --headless=new --screenshot=screenshot.png --window-size=1920,1080 https://example.com

# 截取全页截图
chromium-browser --headless=new --screenshot=full_page.png --window-size=1920,1080 --full-page https://example.com

2. wkhtmltoimage

基于WebKit的命令行工具,适合静态或简单动态页面的截图:

  • 安装:Debian/Ubuntu系统执行apt install wkhtmltopdf(包内包含wkhtmltoimage工具)
  • 命令示例:
# 基础截图
wkhtmltoimage --width 1920 --height 1080 https://example.com screenshot.png

# 截全页并启用JavaScript支持(适配动态页面)
wkhtmltoimage --width 1920 --enable-javascript --javascript-delay 3000 https://example.com full_page.png

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 15:25:05