VSCode配置Puppeteer调试_自动化爬虫脚本的单步执行教程

秋敏姑娘_5437

秋敏姑娘_5437

2026-04-16

635人浏览

原创

vscode调试puppeteer脚本的关键是确保浏览器实例暴露cdp调试通道:必须用pwa-chrome类型配置launch.json,request设为attach,url填http://localhost:9222,puppeteer.launch需显式传--remote-debugging-port=9222参数,禁用devtools:true,推荐puppeteer-core复用本地chrome并连接完整websocket地址。

vscode配置puppeteer调试_自动化爬虫脚本的单步执行教程

VSCode 调试 Puppeteer 脚本,关键不在“怎么配”,而在于浏览器实例是否真正暴露了调试通道——9222 端口没通、puppeteer.launch 没带 --remote-debugging-port、或用了 puppeteer-core 却没连上 WebSocket,断点就永远不生效。

launch.json 里必须用 pwa-chrome 类型,不能选 node

很多人直接复用 Node.js 的调试配置,结果脚本跑起来了,但 VSCode 根本收不到页面上下文,断点灰掉、console.log 不输出、page.evaluate 里的代码无法单步。这是因为 Puppeteer 是控制远端浏览器的,VSCode 必须通过 Chrome DevTools Protocol(CDP)连接 Chromium 实例,不是跑 JS 引擎本身。

  • type 字段必须是 "pwa-chrome",不是 "node" 或 "pwa-node"
  • request 必须是 "attach"(连接已启动的浏览器),不是 "launch"(VSCode 自己拉起浏览器)
  • url 填 "http://localhost:9222",不是你的目标网页地址
  • webRoot 设为 "${workspaceFolder}",否则 source map 无法映射到源码行

puppeteer.launch 必须显式传 --remote-debugging-port=9222

默认 puppeteer.launch({ headless: false }) 启动的 Chromium 是不开放调试端口的。VSCode 连不上,就等于没调试入口。你不能依赖 devtools: true ——它只弹窗 DevTools,不暴露 CDP 接口给外部工具。

智能网页爬虫
智能网页爬虫

智能网页数据采集器,自动识别页面结构,批量抓取列表/表格/详情页数据,支持导出JSON/CSV/Excel,内置反爬策略适配。

下载
  • 正确写法:await puppeteer.launch({ headless: false, args: ['--remote-debugging-port=9222'] })
  • 错误写法:await puppeteer.launch({ headless: false, devtools: true })(VSCode 无法 attach)
  • 如果端口被占,改用其他端口(如 9223),但 launch.json 和 args 必须同步改
  • Windows 下注意路径空格:args 里不要写成 '--remote-debugging-port = 9222'(等号前后有空格会失败)

用 puppeteer-core 复用本地 Chrome 更稳定

每次 puppeteer.launch 都会下载独立 Chromium,版本、缓存、扩展全隔离,调试时容易丢失上下文(比如 localStorage、cookie、甚至 DevTools 断点状态)。换成系统已安装的 Chrome,配合手动启动 + puppeteer-core.connect(),能避免大量“断点突然失效”问题。

  • 终端手动启 Chrome:google-chrome --remote-debugging-port=9222 --no-first-run --no-default-browser-check(macOS/Linux)
  • 代码中改用 const puppeteer = require('puppeteer-core')
  • 连接时用完整 WebSocket 地址:puppeteer.connect({ browserWSEndpoint: 'ws://localhost:9222/devtools/browser/xxx-uuid' })
  • browserWSEndpoint 从 chrome://version 页面底部的 “远程调试地址” 复制,别手敲

断点不命中?先检查右下角状态栏和 Chrome 的 chrome://inspect

VSCode 调试失败,90% 是因为底层连接根本没建起来。别急着改代码逻辑,先确认基础设施通不通。

  • VSCode 右下角状态栏应显示 Chrome (9222),不是灰色或报错
  • 浏览器打开 chrome://inspect,看 “Remote Target” 下有没有你的页面,且状态是 Inspectable
  • 如果 chrome://inspect 里没有目标,说明 puppeteer.launch 没成功带参启动,或端口被防火墙拦截
  • 如果 VSCode 显示已连接但断点不亮,检查 launch.json 里 sourceMaps 是否设为 true,且项目有生成 .map 文件(TypeScript 项目尤其要注意)

最易忽略的一点:Puppeteer 脚本里所有异步操作(page.goto、page.click)都必须在 await 后设断点——没 await 就等于没等页面加载完,断点会直接跳过。调试爬虫,本质是调试「时机」,不是调试「语法」。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode 爬虫

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
vscode是什么_vscode怎么安装配置
vscode是什么_vscode怎么安装配置

VS Code(Visual Studio Code)是一款免费、开源的跨平台代码编辑器,由微软开发和维护。它被广泛用于软件开发和编程,支持多种编程语言和框架。VS Code 同时提供了丰富的功能和扩展性,使开发者可以高效地编写、编辑和调试代码。

2023.06.30

1255

18

vscode怎么运行代码
vscode怎么运行代码

vscode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.21

2612

3

vscode使用的框架介绍
vscode使用的框架介绍

VSCode是一款跨平台代码编辑器,它基于Electron框架和Monaco Editor构建。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1889

12

vscode一般用来写什么语言
vscode一般用来写什么语言

VSCode是一款功能强大的代码编辑器,支持多种编程语言和文件格式。它内置对 JavaScript、Python、Java、C++、TypeScript、HTML/CSS、Go 等语言的支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1707

8

vscode可以写什么语言
vscode可以写什么语言

vscode是一款强大的代码编辑器,支持多种编程语言的开发。通过安装扩展,可以为 JavaScript/TypeScript、Python、Java、C#、PHP、Go、Ruby、Rust、HTML/CSS 等语言提供智能代码补全、调试和格式化等功能。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

2587

12

vscode中文设置方法
vscode中文设置方法

方法一:在设置页面中,搜索“locale”,并选择“zh-cn”。方法二:按“Ctrl Shift P”快捷键,输入“Configure Display Language”,将语言修改为“zh-cn”。如果上述方法无效,可考虑安装中文插件。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1798

14

vscode用途介绍
vscode用途介绍

Visual Studio Code(VSCode)是一款由 Microsoft 开发的多功能文本编辑器,适用于各种编程语言。作为一款开源软件,VSCode 拥有代码高亮、自动补全、调试、Git 集成等强大功能,成为程序员不可或缺的工具。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1242

10

vscode和visualstudio的区别
vscode和visualstudio的区别

Visual Studio是一款功能强大的集成开发环境(IDE),适用于专业开发人员进行复杂项目的构建。而VSCode则是一款轻量级的代码编辑器,更适合各种规模的项目开发。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1116

8

vscode设置中文界面不生效解决方法
vscode设置中文界面不生效解决方法

vscode设置中文界面不生效解决方法:安装中文语言包、通过命令面板设置语言、检查 locale.json 设置、重新安装中文语言包、检查 VSCode 版本和更新、排除插件冲突、检查系统语言设置、查看 VSCode 日志和错误消息、重置 VSCode 设置、查看官方文档和社区支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

454

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程