> ## Documentation Index
> Fetch the complete documentation index at: https://firecrawl.web3doc.top/llms.txt
> Use this file to discover all available pages before exploring further.

# Node

> Firecrawl Node SDK 是 Firecrawl API 的包装器，帮助您轻松将网站转换为 Markdown。

> 注意：这是使用 [v0 版本的 Firecrawl API](/v0/introduction)，该版本已被弃用。我们建议切换到 [v1](/sdks/node)。

## 安装

要安装 Firecrawl Node SDK，您可以使用 npm：

```bash theme={null}
npm install @mendable/firecrawl-js@0.0.36
```

## 用法

1. 从 [firecrawl.dev](https://firecrawl.dev) 获取一个 API 密钥
2. 将 API 密钥设置为名为 `FIRECRAWL_API_KEY` 的环境变量，或将其作为参数传递给 `FirecrawlApp` 类。

以下是如何使用 SDK 并处理错误的示例：

```js theme={null}
import FirecrawlApp from '@mendable/firecrawl-js';

// 使用您的 API 密钥初始化 FirecrawlApp
const app = new FirecrawlApp({ apiKey: "YOUR_API_KEY" });

// 抓取单个 URL
const url = 'https://docs.firecrawl.dev';
const scrapedData = await app.scrapeUrl(url);

// 爬取一个网站
const crawlUrl = 'https://docs.firecrawl.dev';
const params = {
  crawlerOptions: {
    excludes: ['blog/'],
    includes: [], // 留空以爬取所有页面
    limit: 1000,
  },
  pageOptions: {
      onlyMainContent: true
  }
};

const crawlResult = await app.crawlUrl(crawlUrl, params);
```

### 抓取一个 URL

要使用错误处理抓取单个 URL，请使用 `scrapeUrl` 方法。它接受 URL 作为参数，并返回抓取的数据作为一个字典。

```js theme={null}
const url = 'https://example.com';
const scrapedData = await app.scrapeUrl(url);
```

### 爬取一个网站

要使用错误处理爬取一个网站，请使用 `crawlUrl` 方法。它接受起始 URL 和可选参数作为参数。`params` 参数允许您指定爬取作业的其他选项，例如要爬取的最大页面数、允许的域名和输出格式。

```js theme={null}
const crawlUrl = 'https://example.com';

const params = {
  crawlerOptions: {
    excludes: ['blog/'],
    includes: [], // 留空以爬取所有页面
    limit: 1000,
  },
  pageOptions: {
    onlyMainContent: true
  }
};

const waitUntilDone = true;
const pollInterval = 5;

const crawlResult = await app.crawlUrl(
  crawlUrl,
  params,
  waitUntilDone,
  pollInterval
);
```

### 检查爬取状态

要使用错误处理检查爬取作业的状态，请使用 `checkCrawlStatus` 方法。它接受作业 ID 作为参数，并返回爬取作业的当前状态。

```js theme={null}
const status = await app.checkCrawlStatus(jobId);
```

### 从 URL 提取结构化数据

使用 LLM 提取，您可以轻松地从任何 URL 中提取结构化数据。我们支持 zod 模式，使您也更容易使用。以下是如何使用它的示例：

```js theme={null}
import FirecrawlApp from "@mendable/firecrawl-js";
import { z } from "zod";

const app = new FirecrawlApp({
  apiKey: "fc-YOUR_API_KEY",
});

// 定义模式以提取内容到其中
const schema = z.object({
  top: z
    .array(
      z.object({
        title: z.string(),
        points: z.number(),
        by: z.string(),
        commentsURL: z.string(),
      })
    )
    .length(5)
    .describe("Hacker News 上的前五个故事"),
});

const scrapeResult = await app.scrapeUrl("https://firecrawl.dev", {
  extractorOptions: { extractionSchema: schema },
});

console.log(scrapeResult.data["llm_extraction"]);
```

### 搜索查询

使用 `search` 方法，您可以在搜索引擎中搜索查询，并获得顶部结果以及每个结果的页面内容。该方法接受查询作为参数，并返回搜索结果。

```js theme={null}
const query = 'what is mendable?';
const searchResults = await app.search(query, {
  pageOptions: {
    fetchPageContent: true // 为每个搜索结果获取页面内容
  }
});
```

## 错误处理

SDK 处理由 Firecrawl API 返回的错误并引发适当的异常。如果在请求过程中发生错误，将会引发带有描述性错误消息的异常。以上示例展示了如何使用 `try/catch` 块来处理这些错误。
