注意:这是使用 v0 版本的 Firecrawl API,该版本已被弃用。我们建议切换到 v1

安装

要安装 Firecrawl Node SDK,您可以使用 npm:

npm install @mendable/firecrawl-js@0.0.36

用法

  1. firecrawl.dev 获取一个 API 密钥
  2. 将 API 密钥设置为名为 FIRECRAWL_API_KEY 的环境变量,或将其作为参数传递给 FirecrawlApp 类。

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

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 作为参数,并返回抓取的数据作为一个字典。

const url = 'https://example.com';
const scrapedData = await app.scrapeUrl(url);

爬取一个网站

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

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 作为参数,并返回爬取作业的当前状态。

const status = await app.checkCrawlStatus(jobId);

从 URL 提取结构化数据

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

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 方法,您可以在搜索引擎中搜索查询,并获得顶部结果以及每个结果的页面内容。该方法接受查询作为参数,并返回搜索结果。

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

错误处理

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