网页截图工具

Snapgrab是一个Python库,提供网页截图捕获、页面元数据提取和Claude Vision优化的功能,适用于网页监控和AI视觉处理等场景。

  • by QuartzUnit
  • 本地部署
  • 更新于
在 GitHub 查看 QuartzUnit/snapgrab

使用说明

Snapgrab

韩语文档 · llms.txt

带有元数据的屏幕截图URL。Claude Vision已优化。

from snapgrab import capture

result = await capture("https://example.com")
print(result.path)           # /tmp/snapgrab/example_com_desktop_20260317_120000.png
print(result.metadata.title) # "Example Domain"
print(result.vision_tokens)  # ~2764

特性

  • 屏幕截图 --PNG、JPEG、PDF,支持整页
  • 页面元数据 --title、description、Open Graph标签、favicon、HTTP状态
  • 克劳德视觉优化 --自动调整大小为1568px,代币成本估算
  • 视口预设 --台式机(1920x1080)、平板电脑(768x1024)、移动设备(375x812)
  • 包括MCP服务器 --适用于Claude Code/MCP客户端的3个工具
  • 元素捕获 --屏幕截图特定的CSS选择器
  • 深色模式 --强制亮/暗配色方案

安装

pip install snapgrab

首次运行将提示安装Playwright浏览器:

playwright install chromium

用法

Python API

import asyncio
from snapgrab import capture

async def main():
    # Basic screenshot
    result = await capture("https://example.com")

    # Mobile viewport, full page
    result = await capture("https://example.com", viewport="mobile", full_page=True)

    # Dark mode, JPEG format
    result = await capture("https://example.com", dark_mode=True, format="jpeg")

    # Specific element
    result = await capture("https://example.com", selector="#main-content")

    # Custom viewport
    result = await capture("https://example.com", viewport=(1440, 900))

asyncio.run(main())

命令行界面

snapgrab https://example.com                          # basic PNG
snapgrab https://example.com -v mobile -f             # mobile, full page
snapgrab https://example.com --format jpeg -q 90      # JPEG quality 90
snapgrab https://example.com -s "#hero" --dark-mode   # element + dark mode
snapgrab https://example.com -j                       # JSON output
snapgrab meta https://example.com                     # metadata only

MCP服务器

pip install "snapgrab[mcp]"
snapgrab-mcp  # starts stdio MCP server

工具:

  • capture_screenshot --使用元数据和视觉令牌估计捕获URL
  • capture_comparison --比较桌面与移动(或任何视口)
  • extract_page_metadata --仅元数据,无截图

运作原理

flowchart LR
    A["🔗 URL"] --> B["Playwright\nlaunch browser"]
    B --> C["📸 Screenshot\nfull page / viewport"]
    C --> D["Resize for\nClaude Vision"]
    D --> E["✅ Image +\nMetadata"]

捕获结果

result.path            # saved file path
result.format          # "png", "jpeg", "pdf"
result.width           # viewport width
result.height          # page height (full_page) or viewport height
result.file_size       # bytes
result.vision_tokens   # estimated Claude Vision token cost
result.vision_path     # path to Vision-optimized image (≤1568px)
result.processing_time_ms
result.metadata.title
result.metadata.description
result.metadata.og_title
result.metadata.og_image
result.metadata.favicon_url
result.metadata.status_code
result.metadata.url    # final URL after redirects

用于

  • 了望台 --带有视觉差异和安全防护的网页监控

许可证

麻省理工学院


部分 Quartz单位 生态系统——用于数据收集、提取、搜索和AI代理安全的可组合Python库。