Proxy Port logo
文章 > Crawlee

Crawlee

  1. 介绍
  2. 架构
  3. 优势
  4. 缺点
  5. 代理
Crawlee 是一个用于 Node.js 的网络抓取和浏览器自动化库,可帮助您构建可靠的爬虫。

简介

Crawlee 是一个库,它通过提供用于抓取和抓取网站的高级接口来简化网络抓取。 Crawlee 为您处理网络抓取的许多常见挑战,例如:
  • HTTP 抓取:Crawlee 发出模拟浏览器标头和 TLS 指纹的 HTTP 请求。 它还会根据有关真实世界流量的数据自动轮换它们。 包括流行的 HTML 解析器 Cheerio 和 JSDOM。

  • 无头浏览器:Crawlee 建立在 Puppeteer 和 Playwright 之上,并添加了自己的反阻塞功能和类人指纹。 您可以通过 3 行代码将您的爬虫从 HTTP 切换到无头浏览器。

  • 自动缩放和代理管理:Crawlee 根据可用的系统资源自动管理并发并智能地轮换代理。 经常超时、返回网络错误或错误 HTTP 代码(如 401 或 403)的代理将被丢弃。

  • 队列和存储:您可以使用一行代码将文件、屏幕截图和 JSON 结果保存到磁盘,或者为您的数据库插入一个适配器。 您的网址保存在一个队列中,以确保它们的唯一性,并且当出现问题时您不会丢失进度。

  • 有用的实用程序和可配置性:Crawlee 包括用于提取社交句柄或电话号码、无限滚动、阻止不需要的资产等的工具。 它开箱即用,但也提供了丰富的配置选项。
Crawlee 基于 TypeScript,它改进了 IDE 中的代码完成和类型检查。 它还支持 JavaScript,因此您可以毫不费力地将它用于现有项目。

架构

Crawlee针对不同的场景有不同类型的爬虫。 您可以使用 HTTPCrawler 发出简单的 HTTP 请求并使用 Cheerio 或 JSDOM 解析 HTML。 您可以使用 PlaywrightCrawler 或 PuppeteerCrawler 来控制无头浏览器并使用 JavaScript 渲染抓取动态网站。 如果 API 可用,您还可以使用 APICrawler 调用 API 和解析 JSON 以更快、更可靠地抓取数据。

Crawlee 有一个智能代理管理系统,可以根据真实世界的流量数据轮换代理,并丢弃被阻止或不可靠的代理。 它还模仿浏览器标头和 TLS 指纹,以避免被反机器人机制检测到。

Crawlee 有一个队列系统,可确保每个 URL 仅被抓取一次,并且如果出现故障,您不会丢失进度。 您还可以根据自定义条件确定 URL 的优先级。

Crawlee 有一个存储系统,可以让你用一行代码将你抓取的数据、屏幕截图、文件保存到磁盘或云端。 如果愿意,您还可以插入自己的数据库适配器。

Crawlee 有许多有用的实用程序可用于常见的抓取任务,例如提取社交句柄或电话号码、无限滚动、阻止不需要的资产。 它还提供丰富的配置选项来微调您的爬虫。

如您所见,Crawlee 是一个功能强大的框架,可以端到端地满足您的网络抓取需求。

优点

Crawlee 的主要优点之一是它允许您以最少的代码更改在不同的爬行模式之间切换。 您可以将 HTTP 请求与 Cheerio 或 JSDOM 等流行的 HTML 解析器一起使用,也可以使用由 Puppeteer 或 Playwright 控制的无头浏览器,例如 Chrome 或 Firefox。 Crawlee 建立在这些库之上,并添加了自己的反阻止功能和类人指纹,使您的爬虫看起来更自然。

Crawlee 的另一个优势是它可以根据可用的系统资源自动扩展您的爬虫,并根据有关真实世界流量的数据智能地轮换代理。 它还确保您的 URL 保存在队列中,以防止重复并在出现故障时保留进度。 您可以使用一行代码将抓取的数据保存到磁盘或云端,或者为您自己的数据库插入一个适配器。

缺点

然而,Crawlee 并不是每个网络抓取项目的完美解决方案。 在选择它作为您的首选工具之前,您应该了解它的一些缺点。 这里是其中的一些:
  • Crawlee 需要大量的内存和 CPU 资源来运行多个并发请求并处理带有 JavaScript 渲染的复杂网站。 如果您的硬件或预算有限,您可能需要优化您的爬虫或使用不同的工具。

  • Crawlee 没有内置的调度程序或仪表板来管理您的爬虫。 您需要使用外部工具或服务来安排抓取、监控其进度以及处理错误或故障。
这些是使用 Crawlee 进行网络抓取和浏览器自动化的一些缺点。 当然,这些缺点并没有超过将 Crawlee 用于许多需要速度、可靠性和灵活性的项目的好处。 但您应该始终仔细评估您的选择,并选择最适合您特定需求的工具。

代理

Crawlee 支持代理轮换。

也可以看看:
抓取代理
了解更多