@browserless/screenshot

中文文档
14.1.6发布于 2026/11/07MITCommonJS近 30 天下载 2.4万

抓取具有覆盖支持,设备仿真,图像自动优化的网站高品质截图.

中文使用文档
文档目录15 节
  1. 安装
  2. 关于
  3. 这个软件包做什么
  4. 使用量
  5. 选项
  6. 浏览器重叠
  7. 元素截图
  8. 全页截图
  9. 代码语法突出显示
  10. 智能内容检测
  11. 实例
  12. 建筑
  13. 如何适合在单体
  14. 依赖关系
  15. 许可证
browserless browserless

Powered by microlink.io Last version Coverage Status NPM Status

@browserles/截图:拿一个干净的截图任何网站.

见 截图区域 我们的网站有更多信息.

安装

使用 npm :

npm install @browserless/screenshot --save

关于

此软件包提供 高级截图抓取 带有智能默认,浏览器框架覆盖,梯度背景,以及自动代码语法突出. 它包着傀儡的 page.screenshot() 具有优化生产用途的特征.

这个软件包做什么

这个 @browserless/screenshot 软件包允许您 :

  • 抓取截图 有设备模拟和智能等待
  • 添加浏览器框架覆盖 (暗地或淡地主题)
  • 应用梯度或图像背景 为社交媒体准备的图像
  • 自动检测空白截图 重试,直到内容完成
  • 语法高亮代码 (JSON,文本)与Prism.js主题
  • 获取特定要素 使用 CSS 选择器
  • 全页截图 有懒惰内容支持

使用量

const createScreenshot = require('@browserless/screenshot')
const createGoto = require('@browserless/goto')

const goto = createGoto({ timeout: 30000 })
const screenshot = createScreenshot({ goto })

// With browserless
const browserless = await browser.createContext()
const buffer = await browserless.screenshot('https://example.com')

// With overlay
const buffer = await browserless.screenshot('https://example.com', {
  overlay: {
    browser: 'dark',
    background: 'linear-gradient(45deg, #FF057C 0%, #8D0B93 50%, #321575 100%)'
  }
})

选项

选项类型默认说明
typestring'png'图像格式 : 'png', (中文(简体) ), 'jpeg', (中文(简体) ), 'webp'
qualitynumber—— 说JPEG/WebP 的质量( 0- 100)
fullPagebooleanfalse抓取完整可滚动页面
elementstring—— 说元素截图的 CSS 选择器
codeSchemestring'atom-dark'Prism.j 代码突出显示的主题
waitUntilstring'auto'何时考虑导航完成
isPageReadyfunction({ isWhite }) => !isWhite自定义重试循环的准备状态
overlayobject{}浏览器覆盖选项

全体 Puppeteer 页面.screw() 选项 被支持.

浏览器重叠

在您截图上添加一个浏览器框架, 用于擦亮外观 :

const buffer = await browserless.screenshot(url, {
  overlay: {
    // Browser frame theme: 'dark' or 'light'
    browser: 'dark',

    // Background: color, gradient, or image URL
    background: 'linear-gradient(225deg, #FF057C 0%, #8D0B93 50%, #321575 100%)',

    // Margin around the screenshot (default: 0.2 = 20%)
    margin: 0.2
  }
})

背景选项

// Solid color
overlay: { background: '#c1c1c1' }

// CSS gradient
overlay: { background: 'linear-gradient(45deg, #12c2e9, #c471ed, #f64f59)' }

// Image URL
overlay: { background: 'https://picsum.photos/1920/1080' }

元素截图

捕获特定的 DOM 元素 :

const buffer = await browserless.screenshot(url, {
  element: '.hero-section'
})

// The package waits for the element to be visible
const buffer = await browserless.screenshot(url, {
  element: '#main-content'
})

全页截图

用懒惰内容抓取整个可滚动页面 :

const buffer = await browserless.screenshot(url, {
  fullPage: true
})

软件包自动 :

  1. 等待DOM稳定
  2. 通过页面滚动来触发懒惰的图像
  3. 向上滚动
  4. 拿着截图

代码语法突出显示

当反应是JSON或纯文本时,包会自动地用语法突出显示:

// Screenshot of a JSON API response
const buffer = await browserless.screenshot('https://api.example.com/data', {
  codeScheme: 'atom-dark'  // or any Prism.js theme
})

可用主题来自 自动马德-棱镜主题 财务报告和审定财务报表 棱镜主题。当两者中都存在一个主题时,则使用自动调试版本.

主题来源
a11y-dark棱镜主题
atom-dark自定义
atom-one-dark自定义
atom-one-light自定义
aura-dark自定义
automad-dark自定义
automad-light自定义
ayu-dark自定义
ayu-light自定义
ayu-mirage自定义
base自定义
base16-ateliersulphurpool.light棱镜主题
bearded-arc-blueberry自定义
bearded-vivid-light自定义
boola-dark自定义
boola-light自定义
catppuccin-frappe自定义
catppuccin-latte自定义
catppuccin-macchiato自定义
catppuccin-mocha自定义
cb棱镜主题
coldark-cold自定义
coldark-dark自定义
coy-without-shadows棱镜主题
darcula棱镜主题
dark-frost自定义
dark-space自定义
dracula自定义
duotone-dark自定义
duotone-earth自定义
duotone-forest自定义
duotone-light自定义
duotone-sea自定义
duotone-space自定义
ghcolors棱镜主题
github-dark自定义
github-light自定义
gruvbox-dark自定义
gruvbox-light自定义
holi-theme棱镜主题
hopscotch棱镜主题
laserwave自定义
lucario棱镜主题
material-dark棱镜主题
material-light棱镜主题
material-oceanic棱镜主题
night-owl自定义
night-owl-light自定义
nightfall自定义
nord自定义
one-dark棱镜主题
one-light棱镜主题
panda自定义
poimandres自定义
pojoaque棱镜主题
rose-pine自定义
rose-pine-dawn自定义
sakura-sun自定义
sea-shells-dark自定义
serendipity-midnight自定义
serendipity-morning自定义
serendipity-sunset自定义
shades-of-purple自定义
solarized-dark-atom自定义
synthwave84自定义
tailwind-ice自定义
tailwind-moon-blue自定义
tokyo-night自定义
tokyo-night-light自定义
tokyo-night-storm自定义
verdandi自定义
verdandi-alter自定义
violet-dream自定义
vs棱镜主题
vsc-dark-plus自定义
xonokai棱镜主题
z-touch棱镜主题

一些主题还提供轻/暗组合变体,将两种模式都捆绑在一个单一的CSS文件中,根据页面的暗模式类自动切换. 由于截图在不暗模式上下文的情况下渲染出,光变体将永远被使用——更喜欢像 github-light 或者说 github-dark 换句话说.

可用组合主题 :

组合主题光线阴暗
atom-one.light-darkatom-one-lightatom-one-dark
automad.light-darkautomad-lightautomad-dark
ayu.light-darkayu-lightayu-dark
ayu-mirage.light-darkayu-lightayu-mirage
bearded-arc-blueberry.light-darkbearded-vivid-lightbearded-arc-blueberry
boola.light-darkboola-lightboola-dark
catppuccin-frappe.light-darkcatppuccin-lattecatppuccin-frappe
catppuccin-macchiato.light-darkcatppuccin-lattecatppuccin-macchiato
catppuccin-mocha.light-darkcatppuccin-lattecatppuccin-mocha
coldark.light-darkcoldark-coldcoldark-dark
github.light-darkgithub-lightgithub-dark
gruvbox.light-darkgruvbox-lightgruvbox-dark
night-owl.light-darknight-owl-lightnight-owl
rose-pine.light-darkrose-pine-dawnrose-pine
serendipity-midnight.light-darkserendipity-morningserendipity-midnight
serendipity-sunset.light-darkserendipity-morningserendipity-sunset
tailwind-moon-blue.light-darktailwind-icetailwind-moon-blue
tokyo-night-storm.light-darktokyo-night-lighttokyo-night-storm
tokyo-night.light-darktokyo-night-lighttokyo-night
verdandi.light-darkverdandiverdandi-alter

智能内容检测

何时 waitUntil: 'auto' (默认),包:

  1. 导航到页面
  2. 等待字体加载
  3. 在视图端口等待图像解码
  4. 取一个截图
  5. 如果截图是空白/ 白色的, 请重复等待

这保证了JavaScript-landed内容被完全装入.

实例

社交媒体卡

const buffer = await browserless.screenshot('https://example.com', {
  device: 'iPhone 13',
  overlay: {
    browser: 'light',
    background: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)'
  }
})

API 文档截图

const buffer = await browserless.screenshot('https://api.example.com/docs', {
  fullPage: true,
  type: 'jpeg',
  quality: 85
})

具体构成部分

const buffer = await browserless.screenshot('https://example.com', {
  element: '[data-testid="pricing-table"]',
  type: 'png'
})

建筑

@browserless/screenshot
├── src/
│   ├── index.js            → Main screenshot logic with smart waiting
│   ├── is-white-screenshot.js → Blank screenshot detection using Jimp
│   ├── time-span.js        → Timing utility
│   ├── overlay/
│   │   ├── index.js        → Browser frame and background composition
│   │   ├── dark.png        → Dark browser frame
│   │   └── light.png       → Light browser frame
│   └── pretty/
│       ├── index.js        → Code content detection and rendering
│       ├── html.js         → HTML template for code display
│       ├── prism.js        → Prism.js syntax highlighter
│       └── theme.js        → Prism theme loader
└── test/
    └── index.js            → Tests

如何适合在单体

这是一个 核心功能软件包 用于截图抓取 :

消费者目的
browserless (核心数)规定 .screenshot() 方法
@browserless/cli权力 browserless screenshot 命令
@browserless/pdf用途 waitForReady 财务报告和审定财务报表 isWhiteScreenshot

依赖关系

软件包目的
@browserless/goto用广告屏蔽的页面导航
sharp覆盖图的图像组成; 白/空白截图检测
automad-prism-themes语法突出突出主题
svg-gradient生成梯度背景
got获取远程背景图像
is-html-content检测内容是否为 HTML 对代码

许可证

@ browser/ 截图 © 微链接,在 麻省理工学院 执照.
作者和维护者 微链接 由来自 捐助者。 。 。 .

这个 标志 设计由 辛赫工作室。 。 。 .

微链接.io • GitHub 软件 微链克 • X @microlinkhq (英语)

版本与发布记录

@browserless/screenshot 共发布 486 个版本,首次发布于 2019/06/10;过去 12 个月发布了 107 个版本。

版本发布日期距今
14.1.6latest2026/11/071 天前
14.1.52026/11/062 天前
14.1.42026/11/062 天前
14.1.22026/11/035 天前
14.1.12026/11/026 天前
14.0.332026/10/2712 天前

关于 @browserless/screenshot 的常见问题

@browserless/screenshot 是什么?

抓取具有覆盖支持,设备仿真,图像自动优化的网站高品质截图.

如何安装 @browserless/screenshot?

在项目目录运行 npm install @browserless/screenshot,或使用 pnpm add / yarn add / bun add。

@browserless/screenshot 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/browserless__screenshot 是否存在。

@browserless/screenshot 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@browserless/screenshot 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >= 24。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@browserless/screenshot 可以商用吗?

@browserless/screenshot 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@browserless/screenshot 的下载量有多少?

根据 npm 官方下载统计,@browserless/screenshot 在 2026/10/09 – 2026/11/07 这 30 天内被下载 24,257 次,日均约 809 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@browserless/screenshot 还在维护吗?

最新版本 14.1.6 发布于 2026/11/07(1 天前);至今共发布 486 个版本,其中过去 12 个月发布了 107 个;首次发布于 2019/06/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。