这个项目能做什么
Crawlee 是一个面向 Node.js 的网页抓取与浏览器自动化库,使用 TypeScript 编写,以 `crawlee` NPM 包的形式分发。它旨在端到端覆盖抓取与爬取,为 HTTP 爬取和真实浏览器爬取提供统一接口。
README 中描述的关键能力:
- 用于 HTTP 和无头浏览器爬取的统一接口
- 用于待爬取 URL 的持久化队列,支持广度优先和深度优先排序
- 用于表格数据和文件的可插拔存储,默认使用本地 `./storage` 目录
- 根据可用系统资源自动扩展
- 集成代理轮换和会话管理
- 可通过钩子自定义生命周期
- 用于引导项目的 CLI(`npx crawlee create my-crawler`)
- 可配置的路由、错误处理和重试
- 可直接部署的 Dockerfile
- 使用 TypeScript 编写并支持泛型
HTTP 爬取功能包括零配置 HTTP2 支持(甚至适用于代理)、自动生成类浏览器请求头、复制浏览器 TLS 指纹、集成快速 HTML 解析器(Cheerio 和 JSDOM),以及抓取 JSON API 的能力。
真实浏览器爬取功能包括 JavaScript 渲染和截图、无头和有头支持、零配置生成类人指纹、自动浏览器管理,以及通过同一接口在 Chrome、Firefox、Webkit 等浏览器中使用 Playwright 和 Puppeteer 的能力。
安装需要 Node.js 16 或更高版本。推荐的快速开始方式是使用 Crawlee CLI,而手动安装则涉及将 `crawlee` 和诸如 `playwright` 之类的浏览器自动化库添加到现有项目中。一个简短示例展示了一个 `PlaywrightCrawler`,它会记录页面标题、将结果推送到数据集,并将链接加入队列。Beta 构建以 `crawlee@next` 发布。
该项目由 Apify 开发,是开源的,并且可在任何地方运行,文档中支持在 Apify 平台上部署。它采用 Apache License 2.0 许可。支持渠道包括 GitHub issues、Stack Overflow、GitHub Discussions 和 Discord 服务器。还提到了对应的 Python 版本 Crawlee for Python。
评论
0 评分人数达到10人后显示
登录后参与讨论。