Node.js爬虫可用axios发请求、cheerio解析HTML,VSCode仅作编辑器;需确保环境正确、路径无误、静态页优先用此组合,动态页再考虑Puppeteer。

能直接用,但别指望 VSCode 本身干这事——它只是个编辑器,真正干活的是你写的 Node.js 脚本。关键不是“VSCode 怎么抓”,而是“怎么在 VSCode 里写、跑、调一个靠谱的 Node 爬虫”。
node + axios + cheerio 是最稳的起步组合
不用折腾复杂的框架或代理工具,三个包就能覆盖绝大多数静态网页抓取场景。axios 负责发请求,cheerio 负责解析 HTML,Node 原生 fs 可选存文件。
-
axios比原生https模块更易用,自动处理重定向、gzip 解压、超时控制 -
cheerio是服务端版 jQuery,选择器语法熟悉,不依赖浏览器环境 - 避免用已废弃的
request或难调试的got(v12+ 版本有 breaking change) - 安装命令统一用:
npm install axios cheerio,别加--save(npm v7+ 默认行为)
常见报错:EACCES 权限拒绝 / ENOENT 找不到模块
这俩错误几乎都卡在第一步——脚本根本没跑起来,不是逻辑问题,是环境或路径问题。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
-
EACCES: permission denied:Linux/macOS 下全局安装了某些 CLI 工具(比如n或旧版npm),导致node_modules/.bin权限混乱;直接删掉项目根目录下的node_modules和package-lock.json,再npm install -
Cannot find module 'axios':确认当前终端工作目录就是项目根目录(含package.json),VSCode 集成终端右下角会显示路径,别在父文件夹里运行node index.js - Windows 上 PowerShell 报
ExecutionPolicy错误?不是爬虫问题,是系统策略限制,运行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser即可,无需管理员权限
抓动态渲染页面前先确认是否真需要 Puppeteer
90% 的“抓不到内容”其实是因为目标页用了前端框架(React/Vue)异步加载数据,但你没意识到——先用浏览器禁用 JS 刷新页面,看核心内容还在不在。如果还在,说明是静态页,axios 完全够用;如果空白或只剩骨架,才考虑 Puppeteer。
- Puppeteer 启动慢、内存高、调试难,仅当必须执行 JS 时才引入
- 别在 VSCode 终端里直接跑
puppeteer.launch(),容易卡死;先加headless: true,再用await page.goto(url, { waitUntil: 'networkidle2' })控制加载时机 - 多数 API 数据接口其实藏在 Network 面板里,比渲染后 DOM 更干净——这时该用浏览器抓包 + VSCode 写
axios直连接口,而不是硬啃整页渲染
真正麻烦的从来不是代码几行,而是网站反爬策略升级、目标结构微调、编码识别失败这些细节。写完第一版后,记得加 console.log(response.headers['content-type']) 看返回是不是 text/html,别一上来就 cheerio.load ——很多接口返回 JSON,强行当 HTML 解析只会静默失败。

















