@browserless/goto

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

导航到网页时带有内置的ad屏蔽,设备仿真,并优化加载,以加快自动化.

中文使用文档
文档目录15 节
  1. 安装
  2. 关于
  3. 这个软件包做什么
  4. 使用量
  5. 选项
  6. 聪明的等待 waitUntil: 'auto'
  7. 内建的Ad 屏蔽器
  8. 通知
  9. 脚本和样式注入
  10. 请求拦截
  11. 设备仿真
  12. 返回值
  13. 如何适合在单体
  14. 依赖关系
  15. 许可证
browserless browserless

Powered by microlink.io Last version Coverage Status NPM Status

@ browserless/goto: 转到一个页面中止不必要的请求 .

见 转到区域 详情请见我们的网站.

安装

使用 npm :

npm install @browserless/goto --save

关于

此软件包提供 高级页面导航 内置广告屏蔽 智能等待策略 以及广泛的定制选项 它是所有无浏览器页面加载操作的核心导航引擎.

这个软件包做什么

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

  • 导航到页面 具有优化装载和智能等待策略
  • 块状广告和跟踪器 使用预编成的 Ghostery 广告屏蔽引擎
  • 注入脚本、模块和样式 输入页面
  • 模拟设备 带有视图、用户代理和媒体特性
  • 拦截和中止请求 按资源类型
  • 处理 cookie 和 HTTP 认证

使用量

const createGoto = require('@browserless/goto')
const puppeteer = require('puppeteer')

const goto = createGoto({ 
  timeout: 30000,
  defaultDevice: 'Macbook Pro 13'
})

const browser = await puppeteer.launch()
const page = await browser.newPage()

const { response, device, error } = await goto(page, {
  url: 'https://example.com',
  adblock: true,
  waitUntil: 'auto'
})

选项

选项类型默认说明
urlstring—— 说要导航的目标 URL
htmlstring—— 说要渲染的 HTML 内容( 代替 URL)
adblockbooleantrue启用内置广告屏蔽器
waitUntilstring|string[]'auto'导航等待条件
timeoutnumber30000导航超时( ms)
devicestring'Macbook Pro 13'仿真设备;一个桌面设备提供取景口,而用户代理商内部的平台符号遵循主机OS
headersobject{}额外的 HTTP 信头
javascriptbooleantrue启用/ 禁用 JavaScript
notificationsbooleanfalse允许立即允许通知
animationsbooleanfalse启用 CSS 动画
colorSchemestring—— 说'light' 或者说 'dark' 偏好
flattenShadowDOMbooleanfalse (单位:千美元)true 页:1 html()(中文(简体) )将打开的阴影 DOM 序列化为 HTML( 将页面 DOM; 关闭的阴影根跳过)
mediaTypestring—— 说CSS 媒体类型('screen', (中文(简体) ), 'print'(中文(简体) )
timezonestring—— 说要模拟的时区
authenticateobject—— 说HTTP 认证证书
scriptsstring|string[]—— 说要注入的脚本
modulesstring|string[]—— 说要注入的ES 模块
stylesstring|string[]—— 说要注入的样式表
clickstring|string[]—— 说单击 CSS 选择器
scrollstring—— 说要滚动到视图的 CSS 选择器
abortTypesstring[][]要中止的资源类型
waitForSelectorstring—— 说等待选择者出现
waitForFunctionstring—— 说等待函数返回真伪
waitForTimeoutnumber—— 说等待指定的毫秒
onPageRequestfunction—— 说请求截取处理器

聪明的等待 waitUntil: 'auto'

默认 'auto' 模式 智能等待页面准备 :

// Auto mode combines 'load' with 'networkidle2' smartly
await goto(page, { url: 'https://example.com', waitUntil: 'auto' })

// Standard Puppeteer wait conditions also supported
await goto(page, { url: 'https://example.com', waitUntil: 'networkidle0' })
await goto(page, { url: 'https://example.com', waitUntil: ['load', 'domcontentloaded'] })

内建的Ad 屏蔽器

包包括一个预编译 幽灵广告屏蔽器 自动屏蔽广告和跟踪器的引擎:

// Enabled by default
await goto(page, { url: 'https://example.com', adblock: true })

// Disable for specific pages
await goto(page, { url: 'https://example.com', adblock: false })

// The adblocker can be disabled mid-session
page.disableAdblock()

Cookie 同意处理(选择退出)列为 adblock: true 和动力 duckuckgo/自动同意。 。 。 .

adblock: true 也排除了非自动同意的通用公告对话框: ARIA 对话框(role="dialog", (中文(简体) ), role="alertdialog", (中文(简体) ), aria-modal, (中文(简体) ), <dialog open>),没有同意语言和单一的承认式按钮("我理解","得到它","OK",或一个 aria-label="close" 按钮)。 包含窗体字段的对话框不受影响,除非它们暴露出一个明显的关闭按钮,并且仅 <button> 元素被点击 所以解职永远无法导航。 它还包括了不具有对话作用的通知/推入选择上覆,例如AliExpress在标题上所制作的上覆:这些上覆只在副本涉及通知时才被点击,上覆坐落在一个位置小于取景口的容器中,它没有表单字段,也没有同意语言,它暴露出一种明确否定的控制("现在不是","没有许可证","尼赫特喷射",a aria-label="close" (b) 支付)。 肯定控制("Allow","Permitir")从未被点击过,链接中的控制被跳过,因此解职无法导航.

通知

通知默认被拒绝,所以网站跳过它们为索取而提供的覆盖. Notification.permission 财务报告和审定财务报表 navigator.permissions.query({ name: 'notifications' }) 都读 denied,用于屏蔽通知的用户的Chrome对数值报告 window.Notification 继续暴露在克罗姆的体内.

权限属于页面浏览器的上下文,并应用在每次导航上,因此共享上下文的页面共享该值,且不使用 goto 保持克罗姆的默认值.

// denied (default)
await goto(page, { url: 'https://example.com' })

// Chrome's out-of-the-box state, where `Notification.permission` reads `default`
await goto(page, { url: 'https://example.com', notifications: true })

脚本和样式注入

注入外部资源或内入代码 :

await goto(page, {
  url: 'https://example.com',
  // External URLs
  scripts: ['https://cdn.example.com/library.js'],
  // ES modules
  modules: ['https://cdn.example.com/module.mjs'],
  // CSS (URLs, paths, or inline)
  styles: [
    'https://cdn.example.com/styles.css',
    'body { background: red; }'
  ]
})

请求拦截

中止特定资源类型以加快导航 :

await goto(page, {
  url: 'https://example.com',
  abortTypes: ['image', 'stylesheet', 'font', 'media'],
  onPageRequest: (request, page) => {
    console.log('Request:', request.url())
  }
})

设备仿真

// Use preset device
await goto(page, { url: 'https://example.com', device: 'iPhone 13' })

// Custom viewport
await goto(page, {
  url: 'https://example.com',
  viewport: { width: 1920, height: 1080 }
})

// Custom headers
await goto(page, {
  url: 'https://example.com',
  headers: {
    'user-agent': 'custom-agent',
    'cookie': 'session=abc123'
  }
})

返回值

这个 goto 函数返回 :

const { response, device, error } = await goto(page, { url })

// response: Puppeteer Response object (or undefined if navigation failed)
// device: { userAgent, viewport } used for the request
// error: Error object if navigation failed

如何适合在单体

这是 核心导航引擎 用于整个无浏览器生态系统:

消费者目的
browserless (核心数)权力 .goto(), (中文(简体) ), .html(), (中文(简体) ), .text(), (中文(简体) ), .pdf(), (中文(简体) ), .screenshot()
@browserless/screenshot抓取截图前的导航
@browserless/pdf生成 PDF 之前的导航
@browserless/function沙盒函数执行的导航
@browserless/lighthouse灯塔审计导航

依赖关系

软件包目的
@browserless/devices设备描述符查看并模拟
@ghostery/adblocker-puppeteer阿德和跟踪器屏蔽
debug-logfmt结构化调试日志
got邮购脚本的 HTTP 客户端
is-url-http检测值是否为注入的 URL
p-reflect 编号 : p-timeout承诺公用事业暂停
shallow-equal查看端口比较优化
tough-cookieCookie 字符串解析

许可证

@ 浏览器无/去 © 微链接,在 麻省理工学院 执照.
作者和维护者 微链接 由来自 捐助者。 。 。 .

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

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

版本与发布记录

@browserless/goto 共发布 394 个版本,首次发布于 2019/01/28;过去 12 个月发布了 95 个版本。

版本发布日期距今
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/goto 的常见问题

@browserless/goto 是什么?

导航到网页时带有内置的ad屏蔽,设备仿真,并优化加载,以加快自动化.

如何安装 @browserless/goto?

在项目目录运行 npm install @browserless/goto,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:puppeteer(25)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@browserless/goto 支持 TypeScript 吗?

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

@browserless/goto 支持 ESM 还是 CommonJS?

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

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

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

@browserless/goto 可以商用吗?

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

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

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

@browserless/goto 还在维护吗?

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