Agent Skills
返回列表
📊

Puppeteer 隐身爬虫

数据分析 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/puppeteer-stealth-web-scraper。

技能介绍

问题背景

Node.js 环境下的网络爬虫常被反爬系统精准拦截。Puppeteer 默认的 Headless 模式会暴露 navigator.webdriver 为 true、缺失 window.chrome 对象等自动化特征,目标网站可轻易识别这类请求并返回验证码挑战或直接封禁 IP。当遇到动态渲染页面(如 SPA 应用)时,传统 HTTP 请求库无法执行 JavaScript,必须依赖浏览器环境,但普通 Puppeteer 配置又会被反爬策略反制,导致数据采集中断。

核心能力与工作流程

该技能通过三层机制构建隐身采集链路。首先是 反检测伪装:集成 puppeteer-extra 与 puppeteer-extra-plugin-stealth,自动注入脚本覆盖 20 余种自动化特征,包括抹除 navigator.plugins 差异、伪装 canvas.getContext 指纹,使浏览器行为与真实用户无异。其次是 代理轮换系统:通过 Bright Data API 动态获取住宅代理池,每次请求自动切换 IP,避免单一 IP 高频访问触发的黑名单机制,同时支持自定义代理地域分布以适配不同地区的采集需求。最后是 并发控制与解析优化:使用 p-queue 管理任务队列,可根据目标网站响应速度动态调整并发数(默认 3-5 个任务),防止请求过载;HTML 解析阶段结合 cheerio 高效提取结构化数据,支持 CSS 选择器与 XPath 混合匹配,处理嵌套 DOM 节点时性能提升 40% 以上。

适用边界与注意事项

该方案并非万能钥匙。住宅代理需用户提供有效的 Bright Data API 密钥,且高频采集可能产生额外费用;针对金融、政府等高防护站点,仍需补充自定义 stealth 配置(如调整 user-agent 与系统时区匹配)。并发参数需根据目标网站性能动态调整,过高的并发量(超过 10 个任务)可能导致代理 IP 被临时冻结。对于依赖 Cookie 鉴权的站点,需配合浏览器上下文持久化存储(如 page.createBrowserContext)以维持登录状态,同时注意定期清理过期 Cookie 避免数据泄露风险。

使用场景

  • 遇到 SPA 页面需要 JS 渲染才能加载完整商品列表,且站点有 bot 检测,传统 HTTP 请求拿不到数据
  • 需要从数百个页面批量采集结构化数据,单 IP 高频请求会被反爬系统封禁
  • 目标站点有 canvas 指纹检测和 navigator 属性校验,常规 Puppeteer 脚本直接被拦截
  • 需要控制并发数以避免触发目标网站性能监控或代理 IP 被临时冻结

适合人员

  • 爬虫工程师:需要在生产环境中稳定采集有反爬防护的动态页面数据
  • 数据工程师:负责构建自动化数据采集管道,需要隐身浏览器与代理轮换方案
  • 后端开发者:为业务系统提供可靠数据源,需绕过 SPA 页面的 bot 检测获取实时信息