Screenshot Platform

截图 /take

核心截图接口,兼容 ScreenshotOne 风格参数;GET 使用 Query,POST 使用 JSON Body。

端点

GET  /take
POST /take

通过平台边缘网关 https://api.1diff.shop 访问。GET 将所有参数放在 Query String;POST 可将参数放在 JSON Body(与 Query 等效,以实现为准)。

urlhtmlmarkdown 三者互斥,必须且只能提供其一。未传 format 时默认为 png

请求参数

下列表格由代码中的参数目录自动生成,与网关校验逻辑保持一致。

输入源

参数类型默认值说明
url*string目标页面 URL,须为 http(s) 完整地址,最长 2048 字符
htmlstring直接渲染的 HTML 字符串;与 url、markdown 互斥
markdownstring直接渲染的 Markdown 字符串;与 url、html 互斥

视口与裁剪

参数类型默认值范围说明
viewport_widthnumber1280100–7680视口宽度(像素)
viewport_heightnumber720100–30000视口高度(像素)
screenshot_elementstring仅截取指定 CSS 选择器对应元素
selectorstring与 screenshot_element 类似的元素选择器
crop_elementstring裁剪区域元素选择器
crop_selectorstring裁剪区域 CSS 选择器
viewport_devicestring模拟设备类型(如 iPhone、iPad 等预设)

等待策略

参数类型默认值范围说明
delaynumber00–30000页面加载后额外等待时间(毫秒)
timeoutnumber1000–120000整次截图请求超时(毫秒)
wait_for_still_dombooleanfalse等待 DOM 稳定后再截图
initially_wait_for_still_dombooleanfalse页面打开后先等待 DOM 稳定
wait_until_dom_content_loadedbooleanfalse等待 DOMContentLoaded 事件
wait_until_network_is_idlebooleanfalse等待网络空闲
wait_forstring等待条件表达式
wait_for_selectorstring等待 DOM 中出现指定选择器
wait_for_eventstring等待指定浏览器事件
initial_waitstring初始等待时间或条件

屏蔽与拦截

参数类型默认值说明
block_adsbooleanfalse屏蔽广告
block_trackingbooleanfalse屏蔽跟踪脚本
block_chatsbooleanfalse屏蔽在线客服组件
block_cookie_bannersbooleanfalse屏蔽 Cookie 横幅
disable_fontsbooleanfalse禁用自定义字体加载
click_accept_cookiesbooleanfalse自动点击接受 Cookie
block_resourcesstring按模式拦截资源 URL
allow_resourcesstring按模式放行资源 URL
hide_selectorstring截图前隐藏匹配选择器的元素
block_selectorstring截图前移除匹配选择器的元素

注入

参数类型默认值说明
cssstring注入自定义 CSS
javascriptstring注入自定义 JavaScript

输出

参数类型默认值范围说明
formatstringpng输出格式:png, jpeg, webp, gif, tiff, avif, heif, pdf
image_qualitynumber801–100仅 jpeg/webp 有效,图像质量 1–100
full_pagebooleanfalse是否截取完整可滚动页面
retinabooleanfalse是否使用 2x 设备像素比
downloadbooleanfalse以附件方式下载
outputstring输出目标或存储方式
response_typestring响应类型(如二进制或 JSON 元数据)

PDF

参数类型默认值说明
pdf_page_sizestringPDF 页面尺寸
pdf_margin_topstringPDF 上边距
pdf_margin_bottomstringPDF 下边距
pdf_margin_leftstringPDF 左边距
pdf_margin_rightstringPDF 右边距
pdf_display_header_footerstringPDF 是否显示页眉页脚

高级

参数类型默认值说明
touchbooleanfalse模拟触摸设备
bypass_heuristicbooleanfalse绕过部分启发式限制
force_asyncbooleanfalse强制异步渲染
asyncbooleanfalse异步模式
embed_v2booleanfalse嵌入模式(v2)
embedbooleanfalse嵌入模式(v1)
cachebooleanfalse启用响应缓存
no_cachebooleanfalse跳过缓存强制重新渲染
request_headersstring自定义请求头(序列化)
cookiesstring请求携带的 Cookie(序列化)
localestring浏览器区域设置(如 zh-CN)
timezonestring时区(如 Asia/Shanghai)
color_schemestring强制浅色/深色配色(如 light、dark)
cache_keystring自定义缓存键
storage_keystring对象存储键名
notion_oauth_tokenstringNotion OAuth 令牌(集成场景)

响应

成功(200)

返回二进制图像或 PDF(由 format 决定)。

Header说明
Content-TypeMIME 类型,如 image/png
X-Screenshot-Duration-Ms截图耗时(毫秒)
X-RateLimit-Limit每日请求上限
X-RateLimit-Remaining今日剩余配额
X-RateLimit-Reset配额重置时间(Unix 秒)
X-CacheHITMISS

错误

常见状态码见 错误码

代码示例

# 基础截图
curl "http://localhost:3200/take?url=https://example.com&access_key=YOUR_KEY" -o screenshot.png

# 自定义视口与全页
curl "http://localhost:3200/take?url=https://example.com&access_key=YOUR_KEY&viewport_width=1920&viewport_height=1080&full_page=true&format=jpeg&image_quality=90" -o screenshot.jpg
const base = 'http://localhost:3200';
const params = new URLSearchParams({
  url: 'https://example.com',
  viewport_width: '1920',
  full_page: 'true',
  format: 'jpeg',
  image_quality: '90',
});

const res = await fetch(`${base}/take?${params}`, {
  headers: { Authorization: 'Bearer YOUR_KEY' },
});
const buffer = await res.arrayBuffer();
import requests

resp = requests.get(
    'http://localhost:3200/take',
    params={
        'url': 'https://example.com',
        'access_key': 'YOUR_KEY',
        'viewport_width': 1920,
        'full_page': True,
        'format': 'jpeg',
        'image_quality': 90,
    },
)
with open('screenshot.jpg', 'wb') as f:
    f.write(resp.content)

On this page