AI个人学习
和实操指南

Crawlee:使用Node.js构建可靠的网络爬虫和浏览器自动化工具

综合介绍

Crawlee 是一个由 Apify 开发的开源网络爬虫和浏览器自动化库,专为 Node.js 环境设计。它支持 JavaScript 和 TypeScript,能够与 Puppeteer、Playwright、Cheerio、JSDOM 等工具配合使用,提供强大的数据抓取和自动化功能。Crawlee 允许用户构建可靠的爬虫,提取 AI、LLM、RAG 或 GPTs 所需的数据,并下载 HTML、PDF、JPG、PNG 等文件。其设计旨在使爬虫看起来更像人类操作,能够规避现代反爬虫机制,支持代理轮换和会话管理,适用于各种复杂的网络抓取任务。

Crawlee for Python 向早期采用者开放!

Crawlee:使用Node.js构建可靠的网络爬虫和浏览器自动化工具-1

 

功能列表

  • HTTP 和无头浏览器爬取的单一接口
  • 持久化的 URL 爬取队列(广度优先和深度优先)
  • 可插拔的数据和文件存储
  • 自动根据系统资源进行扩展
  • 集成代理轮换和会话管理
  • 生命周期可通过钩子自定义
  • CLI 工具用于引导项目
  • 可配置的路由、错误处理和重试机制
  • 提供 Dockerfiles 以便部署
  • 使用 TypeScript 编写,支持泛型
  • 支持 HTTP2 和自动生成浏览器样式的请求头
  • 集成快速 HTML 解析器(Cheerio 和 JSDOM)
  • 支持 JSON API 抓取
  • 支持 JavaScript 渲染和截图
  • 无头和有头模式支持
  • 自动生成人类样式的指纹
  • 使用 Playwright 和 Puppeteer 的统一接口
  • 支持 Chrome、Firefox、Webkit 等浏览器

 

使用帮助

安装

Crawlee 需要 Node.js 16 或更高版本。可以通过以下命令快速安装并创建一个示例爬虫:

npx crawlee create my-crawler
cd my-crawler
npm start

如果你更喜欢手动安装,可以使用以下命令:

npm install crawlee playwright

然后在你的项目中导入并使用:

import { PlaywrightCrawler, Dataset } from 'crawlee';
const crawler = new PlaywrightCrawler({
async requestHandler({ request, page, enqueueLinks, log }) {
const title = await page.title();
log.info(`Title of ${request.loadedUrl} is '${title}'`);
await Dataset.pushData({ title, url: request.loadedUrl });
await enqueueLinks();
},
// headless: false, // Uncomment to see the browser window
});
await crawler.run(['https://crawlee.dev']);

功能操作流程

  1. 创建爬虫项目:使用 Crawlee CLI 快速创建一个新的爬虫项目,CLI 会安装所有必要的依赖并添加样板代码。
  2. 配置爬虫:在项目中配置爬虫的请求处理逻辑、数据存储位置、代理设置等。
  3. 运行爬虫:通过命令行运行爬虫,Crawlee 会自动处理请求、抓取数据并存储结果。
  4. 数据存储:Crawlee 默认将数据存储在当前工作目录的 ./storage 文件夹中,可以通过配置文件覆盖此目录。
  5. 扩展功能:根据需要添加自定义钩子、错误处理机制和重试策略,确保爬虫的稳定性和可靠性。

代理和会话管理

Crawlee 集成了代理轮换和会话管理功能,确保爬虫在抓取过程中不会被目标网站屏蔽。可以通过配置文件设置代理列表和会话参数,实现自动轮换和管理。

部署

Crawlee 提供了 Dockerfiles,方便将爬虫部署到云端或其他环境中。可以通过以下命令构建和运行 Docker 容器:

docker build -t my-crawler .
docker run my-crawler

AI轻松学

普通人的AI入门指南

帮助你以低成本、零基础学会如何利用AI工具。AI就像办公软件一样,是每个人的必备技能。 掌握AI会让你在求职中占据优势,在未来的工作和学习中事半功倍。

查看详情>
未经允许不得转载:首席AI分享圈 » Crawlee:使用Node.js构建可靠的网络爬虫和浏览器自动化工具

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文