返回探索
crawlee

crawlee - Node.js网页抓取工具

Node.js网页抓取与浏览器自动化库,支持多框架和代理旋转

4
22,762 浏览
游戏娱乐
访问官网

详细介绍

Crawlee 仓库中文介绍文档

Crawlee 是一个用于 Node.js 构建可靠爬虫的网络抓取和浏览器自动化库,由 Apify 提供,支持 JavaScript 和 TypeScript,能够提取 AI、LLM、RAG 或 GPT 的数据,从网站下载 HTML、PDF、JPG、PNG 等文件,适用于 Puppeteer、Playwright、Cheerio、JSDOM 和原始 HTTP。

要点:

  • 开头就要说清楚:这是什么工具、解决什么问题
  • 包含 Stars 数(如有)、维护者信息
  • 1-3 句话,简洁有力

一、核心信息速览

维度 详情
:--- :---
仓库地址 [crawlee](https://github.com/apify/crawlee)
许可证 MIT
核心定位 提供可靠的网页抓取与浏览器自动化功能
主要语言 TypeScript
适用人群 网页爬虫开发者、数据采集工程师、自动化测试人员
关键亮点 支持无头和有头模式;内置代理旋转功能;兼容 Puppeteer 和 Playwright;易于配置;适合大规模数据抓取

二、核心功能

功能模块 描述 典型场景
:--- :--- :---
网页抓取 从网站提取 HTML、PDF、图片等数据 数据采集、内容分析
浏览器自动化 支持无头和有头模式,模拟人类操作 自动化测试、动态网页数据获取
代理管理 内置代理旋转功能,防止 IP 被封 大规模爬虫任务
数据存储 支持将数据存储到本地或云端 数据归档、后续处理
多框架兼容 支持 Puppeteer、Playwright、Cheerio 等 多种技术栈集成
配置灵活 可自定义设置,适应不同项目需求 定制化开发
人机行为模拟 模拟真实用户行为,规避反爬机制 避免被网站识别为机器人
错误处理 提供异常捕获和重试机制 增强爬虫稳定性

三、快速上手

1. 环境准备

Node.js 16 或更高版本

2. 安装方式

npm install crawlee

3. 基础配置

通过 crawlee CLI 创建项目:

npx crawlee create my-crawler
cd my-crawler

4. 核心示例

const { Crawler } = require('crawlee');

const crawler = new Crawler({
  async requestHandler({ page, url }) {
    const data = await page.evaluate(() => {
      return {
        title: document.title,
        links: Array.from(document.querySelectorAll('a'), a => a.href),
      };
    });
    console.log(data);
  },
});

await crawler.run(['https://example.com']);

四、核心亮点

  1. 支持多种浏览器自动化框架:兼容 Puppeteer 和 Playwright,便于选择最适合的工具。
  2. 内置代理管理:自动切换代理,提升爬虫的稳定性和隐蔽性。
  3. 灵活的配置选项:可根据不同需求调整爬虫行为,提高适应性。
  4. 强大的错误处理机制:提供异常捕获和重试功能,确保爬虫运行更加可靠。

五、适用场景

  1. 大规模数据采集:适用于需要从多个网站提取结构化数据的场景。
  2. 动态网页解析:支持 JavaScript 渲染的页面,适用于现代 Web 应用。
  3. 自动化测试:可用于模拟用户操作,进行端到端测试。
  4. 内容监控与分析:定期抓取特定网站的数据,用于趋势分析或竞争监测。
  5. 多平台数据整合:将来自不同来源的数据统一整理,便于后续处理。

六、优缺点

优势

  • 支持无头和有头模式,适应不同环境。
  • 提供丰富的配置选项,满足多样化需求。
  • 与主流浏览器自动化工具兼容,降低学习成本。
  • 内置代理管理和错误处理,提升爬虫稳定性。

不足

  • 对于非 Node.js 生态的开发者可能需要额外的学习成本。
  • 文档虽然详细,但对新手仍有一定门槛。
  • 在高并发场景下可能需要进一步优化性能。

七、与同类工具对比(可选)

工具 类型 核心差异
:--- :--- :---
Crawlee 开源爬虫库 支持多种浏览器自动化框架,配置灵活
Puppeteer 浏览器自动化工具 专注于 Chrome/Chromium,功能强大但不够灵活
Playwright 浏览器自动化工具 支持多浏览器,功能全面但学习曲线较陡
Scrapy Python 爬虫框架 适合 Python 开发者,但不支持浏览器自动化

八、总结

Crawlee 是一款面向网页爬虫开发者的强大工具,特别适合需要构建稳定、高效爬虫的场景。它提供了灵活的配置和多种浏览器自动化支持,是构建大规模数据采集系统的理想选择。然而,对于非 Node.js 生态的开发者来说,可能需要一定的学习成本。

相关工具