Quick Start | Crawlee

爬虫nodejs

通过这个简短的教程,您可以在一两分钟内开始使用Crawlee进行抓取。要了解更多信息,请阅读简介。

克劳利 网页抓取和浏览器自动化库

NPM最新版本 下载 聊天不和谐 构建状态

Crawlee 涵盖了端到端的爬行和抓取,并帮助您构建可靠的抓取工具。快速地。

即使使用默认配置,您的爬虫也会像人类一样出现并在现代机器人保护的雷达下飞行。Crawlee 为您提供了在网络上抓取链接、抓取数据并将其存储到磁盘或云的工具,同时保持可配置以满足您的项目需求。

Crawlee 可作为crawleeNPM 包使用。

👉在**Crawlee 项目网站**上查看完整文档、指南和示例👈

安装

我们建议访问Crawlee 文档中的简介教程以获取更多信息。

Crawlee 需要Node.js 16 或更高版本

使用 Crawlee CLI

尝试 Crawlee 的最快方法是使用Crawlee CLI并选择入门示例。CLI 将安装所有必要的依赖项并添加样板代码供您使用。

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

手动安装

如果您更喜欢将 Crawlee 添加到您自己的项目中,请尝试下面的示例。因为它使用PlaywrightCrawler我们还需要安装Playwright。它没有与 Crawlee 捆绑在一起以减少安装大小。

npm install crawlee playwright
import { PlaywrightCrawler, Dataset } from 'crawlee';

// PlaywrightCrawler crawls the web using a headless
// browser controlled by the Playwright library.
const crawler = new PlaywrightCrawler({
    // Use the requestHandler to process each of the crawled pages.
    async requestHandler({ request, page, enqueueLinks, log }) {
        const title = await page.title();
        log.info(`Title of ${request.loadedUrl} is '${title}'`);

        // Save results as JSON to ./storage/datasets/default
        await Dataset.pushData({ title, url: request.loadedUrl });

        // Extract links from the current page
        // and add them to the crawling queue.
        await enqueueLinks();
    },
    // Uncomment this option to see the browser window.
    // headless: false,
});

// Add first URL to the queue and start the crawl.
await crawler.run(['https://crawlee.dev']);

默认情况下,Crawlee 将数据存储./storage在当前工作目录中。您可以通过 Crawlee 配置覆盖此目录。详细信息请参见配置指南请求存储结果存储

🛠 特点

  • 用于HTTP 和无头浏览器爬行的单一接口
  • 要抓取的 URL 的持久队列(广度和深度优先)
  • 表格数据和文件的可插拔存储
  • 利用可用系统资源自动扩展
  • 集成代理轮换和会话管理
  • 使用钩子可定制生命周期
  • CLI来引导您的项目
  • 可配置的路由错误处理重试
  • Dockerfiles准备部署
  • 使用泛型用TypeScript编写

👾 HTTP 爬取

  • 零配置HTTP2 支持,即使对于代理也是如此
  • 自动生成类似浏览器的标题
  • 浏览器TLS 指纹的复制
  • 集成快速HTML 解析器。Cheerio 和 JSDOM
  • 是的,您也可以抓取JSON API

💻 真实的浏览器爬行

  • JavaScript渲染屏幕截图
  • 无头有头支持
  • 零配置生成类人指纹
  • 自动浏览器管理
  • 使用具有相同界面的PlaywrightPuppeteer
  • ChromeFirefoxWebkit

Apify 平台上的使用

Crawlee 是开源的,可以在任何地方运行,但由于它是由Apify开发的,因此很容易在 Apify 平台上设置并在云端运行。访问Apify SDK 网站,了解有关将 Crawlee 部署到 Apify 平台的更多信息。

支持

如果您发现 Crawlee 存在任何错误或问题,请在 GitHub 上提交问题如有问题,您可以在Stack Overflow 、GitHub 讨论中提问,或者加入我们的Discord 服务器

贡献

欢迎您贡献代码,您将受到永远的赞扬!如果您有任何改进想法,请提交问题或创建拉取请求。有关贡献指南和行为准则,请参阅CONTRIBUTING.md

执照

该项目已获得 Apache License 2.0 的许可 -有关详细信息,请参阅LICENSE.md文件。