要安装 Firecrawl Node SDK,您可以使用 npm:
npm install @mendable/firecrawl-js
- 从 firecrawl.dev 获取一个 API key。
- 将 API key 设置为环境变量
FIRECRAWL_API_KEY
或将其作为参数传递给 FirecrawlApp
类。
以下是一个如何使用 SDK 并处理错误的示例:
import FirecrawlApp, { CrawlParams, CrawlStatusResponse } from '@mendable/firecrawl-js';
const app = new FirecrawlApp({apiKey: "fc-YOUR_API_KEY"});
// 抓取网站内容
const scrapeResponse = await app.scrapeUrl('https://firecrawl.dev', {
formats: ['markdown', 'html'],
});
if (!scrapeResponse.success) {
throw new Error(`抓取失败: ${scrapeResponse.error}`);
}
console.log(scrapeResponse);
// 爬取网站内容
const crawlResponse = await app.crawlUrl('https://firecrawl.dev', {
limit: 100,
scrapeOptions: {
formats: ['markdown', 'html'],
}
});
if (!crawlResponse.success) {
throw new Error(`爬取失败: ${crawlResponse.error}`);
}
console.log(crawlResponse);
抓取 URL
要抓取单个 URL 并处理错误,请使用 scrapeUrl
方法。它接受 URL 作为参数,并返回抓取的数据作为字典。
// 抓取一个网站:
const scrapeResult = await app.scrapeUrl('firecrawl.dev', { formats: ['markdown', 'html'] });
if (!scrapeResult.success) {
throw new Error(`抓取失败: ${scrapeResult.error}`);
}
console.log(scrapeResult);
爬取网站
要爬取网站并处理错误,请使用 crawlUrl
方法。它接受起始 URL 和可选参数作为参数。params
参数允许您指定爬取作业的其他选项,如最大爬取页面数、允许的域名和输出格式。
const crawlResponse = await app.crawlUrl('https://firecrawl.dev', {
limit: 100,
scrapeOptions: {
formats: ['markdown', 'html'],
}
})
if (!crawlResponse.success) {
throw new Error(`Failed to crawl: ${crawlResponse.error}`)
}
console.log(crawlResponse)
异步爬取
要异步爬取网站,请使用 crawlUrlAsync
方法。它返回爬取作业的 ID
,您可以用它来检查爬取作业的状态。它接受起始 URL 和可选参数作为参数。params
参数允许您指定爬取作业的其他选项,如最大爬取页面数、允许的域名和输出格式。
const crawlResponse = await app.asyncCrawlUrl('https://firecrawl.dev', {
limit: 100,
scrapeOptions: {
formats: ['markdown', 'html'],
}
});
if (!crawlResponse.success) {
throw new Error(`Failed to crawl: ${crawlResponse.error}`)
}
console.log(crawlResponse)
检查爬取状态
要检查爬取作业的状态并处理错误,请使用 checkCrawlStatus
方法。它接受 ID
作为参数,并返回当前爬取作业的状态。
Node;
const crawlResponse = await app.checkCrawlStatus('<crawl_id>');
if (!crawlResponse.success) {
throw new Error(`Failed to check crawl status: ${crawlResponse.error}`);
}
console.log(crawlResponse);
取消爬取
要取消异步爬取作业,请使用 cancelCrawl
方法。它接受异步爬取作业的 ID 作为参数,并返回取消状态。
const cancelCrawl = await app.cancelCrawl(id);
console.log(cancelCrawl);
映射网站
要映射网站并处理错误,请使用 mapUrl
方法。它接受起始 URL 作为参数,并返回映射的数据作为字典。
const mapResult = await app.mapUrl('https://firecrawl.dev');
if (!mapResult.success) {
throw new Error(`Failed to map: ${mapResult.error}`);
}
console.log(mapResult);
使用 WebSockets 爬取网站
要使用 WebSockets 爬取网站,请使用 crawlUrlAndWatch
方法。它接受起始 URL 和可选参数作为参数。params
参数允许您指定爬取作业的其他选项,如最大爬取页面数、允许的域名和输出格式。
const watch = await app.crawlUrlAndWatch('mendable.ai', { excludePaths: ['blog/*'], limit: 5});
watch.addEventListener("document", doc => {
console.log("DOC", doc.detail);
});
watch.addEventListener("error", err => {
console.error("ERR", err.detail.error);
});
watch.addEventListener("done", state => {
console.log("DONE", state.detail.status);
});
错误处理
SDK 处理由 Firecrawl API 返回的错误,并引发适当的异常。如果在请求过程中发生错误,将会引发带有描述性错误消息的异常。上面的示例展示了如何使用 try/catch
块处理这些错误。