Skip to main content

安装

要安装Firecrawl Node SDK,您可以使用npm:
Node
# 安装firecrawl-js包
npm install @mendable/firecrawl-js

使用方法

  1. firecrawl.dev获取API密钥
  2. 将API密钥设置为名为FIRECRAWL_API_KEY的环境变量,或者将其作为参数传递给FirecrawlApp类。
以下是如何使用带有错误处理的SDK的示例:
Node
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(`Failed to scrape: ${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(`Failed to crawl: ${crawlResponse.error}`)
}

console.log(crawlResponse)

抓取单个URL

要使用错误处理抓取单个URL,请使用scrapeUrl方法。它接受URL作为参数,并以字典形式返回抓取的数据。
Node
// Scrape a website:
const scrapeResult = await app.scrapeUrl('firecrawl.dev', { formats: ['markdown', 'html'] });

if (!scrapeResult.success) {
  throw new Error(`Failed to scrape: ${scrapeResult.error}`)
}

console.log(scrapeResult)

爬取网站

要使用错误处理爬取网站,请使用crawlUrl方法。它接受起始URL和可选参数作为参数。params参数允许您为爬取任务指定其他选项,例如要爬取的最大页面数、允许的域名和输出格式。
Node
// 爬取一个网站
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,您可以使用该ID检查爬取任务的状态。它接受起始URL和可选参数作为参数。params参数允许您为爬取任务指定其他选项,例如要爬取的最大页面数、允许的域名和输出格式。
Node
// 异步爬取一个网站
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作为参数,并返回取消状态。
Node
// 取消爬取任务
const cancelCrawl = await app.cancelCrawl(id);
console.log(cancelCrawl)

映射网站

要使用错误处理映射网站,请使用mapUrl方法。它接受起始URL作为参数,并以字典形式返回映射数据。
Node
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参数允许您为爬取任务指定其他选项,例如要爬取的最大页面数、允许的域名和输出格式。
Node
// 爬取URL并监视结果,排除blog路径,限制爬取5个页面
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块处理这些错误。