注意:这是使用 v0 版本的 Firecrawl API,该版本已被弃用。我们建议切换到 v1。
要安装 Firecrawl Node SDK,您可以使用 npm:
npm install @mendable/firecrawl-js@0.0.36
- 从 firecrawl.dev 获取一个 API 密钥
- 将 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
块来处理这些错误。