Crawlee 网页爬取与数据抓取 SDK
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/crawlee-web-crawling-and-scraping-sdk。
技能介绍
要解决的问题
手动拼装 HTTP 客户端、队列、代理轮换、去重、浏览器实例和数据存储,是爬虫开发最容易出错的地方。切换 Playwright、Puppeteer、Cheerio 或纯 HTTP 后端时,往往需要重写大量适配代码。
技能如何工作
Crawlee 把请求队列、浏览器自动化、代理支持和存储原语组合成一个统一工具包:
- 使用
RequestQueue管理待抓 URL,避免重复请求和并发失控 - 通过
BrowserPool复用浏览器上下文,降低启动开销 - 内置代理轮换接口,可接入 Apify Proxy 或其他自定义代理
- 提供
Dataset、KeyValueStore等原语持久化结构化结果
关键步骤:定义路由处理逻辑 → 调用 addRequests() 发起抓取 → 在 requestHandler 中解析响应 → 将清洗后的数据写入 Dataset.pushData()。同一个项目可以在 Node.js 环境中切换解析后端,而不用重写调度和存储层。
适用边界与注意点
- 需要 Node.js 16 或更高版本,更适合长时间运行的爬虫任务
- 若主要使用 Python,请查看 Crawlee for Python,而不是直接在该 SDK 中寻找 Python 入口
- 对于仅抓取单个静态 HTML 页面的一次性脚本,直接使用
fetch或axios会更轻量 - 部署到生产环境前,确认已配置代理轮换、失败重试和速率限制
- 始终遵守目标网站的
robots.txt和服务条款
使用场景
- 构建批量网页爬取任务时,需要统一管理请求队列和去重逻辑
- 处理依赖JavaScript渲染的页面时,需要通过浏览器自动化提取动态内容
- 采集大量目标URL时,需要配置代理轮换避免被目标站点限制访问
- 将爬取结果持久化时,需要使用结构化存储原语保存数据
适合人员
- 使用Node.js构建爬虫的工程师,需要统一处理请求队列和浏览器自动化
- 依赖Playwright或Puppeteer解析动态页面的开发者,想复用爬虫调度逻辑
- 需要将爬取结果存入结构化存储的开发者,不想重复实现存储层
- 尝试Crawlee CLI入门的新手,希望快速生成可运行的爬虫样板代码