安装与配置
Copy
Ask AI
npm install @mendable/firecrawl-js zod
适用场景
- 研究自动化与事实核查
- 构建知识图谱
- 多语言内容提取
- 教育内容聚合
- 实体信息提取
使用 JSON 模式进行抓取
Copy
Ask AI
import FirecrawlApp from '@mendable/firecrawl-js';
import { z } from 'zod';
const firecrawl = new FirecrawlApp({ apiKey: process.env.FIRECRAWL_API_KEY });
const result = await firecrawl.scrape('https://en.wikipedia.org/wiki/JavaScript', {
formats: [{
type: 'json',
schema: z.object({
name: z.string(),
creator: z.string(),
firstAppeared: z.string(),
typingDiscipline: z.string(),
website: z.string()
})
}]
});
console.log(result.json);
搜索
Copy
Ask AI
import FirecrawlApp from '@mendable/firecrawl-js';
const firecrawl = new FirecrawlApp({ apiKey: process.env.FIRECRAWL_API_KEY });
const searchResult = await firecrawl.search('quantum computing site:en.wikipedia.org', {
limit: 10,
sources: [{ type: 'web' }], // { type: 'news' }、{ type: 'images' }
scrapeOptions: {
formats: ['markdown']
}
});
console.log(searchResult);
抓取
Copy
Ask AI
import FirecrawlApp from '@mendable/firecrawl-js';
const firecrawl = new FirecrawlApp({ apiKey: process.env.FIRECRAWL_API_KEY });
const result = await firecrawl.scrape('https://en.wikipedia.org/wiki/Artificial_intelligence', {
formats: ['markdown'], // 例如 html、links 等
onlyMainContent: true
});
console.log(result);
Map
Copy
Ask AI
import FirecrawlApp from '@mendable/firecrawl-js';
const firecrawl = new FirecrawlApp({ apiKey: process.env.FIRECRAWL_API_KEY });
const mapResult = await firecrawl.map('https://en.wikipedia.org/wiki/Portal:Computer_science');
console.log(mapResult.links);
// 返回不含内容的 URL 数组
爬取
Copy
Ask AI
import FirecrawlApp from '@mendable/firecrawl-js';
const firecrawl = new FirecrawlApp({ apiKey: process.env.FIRECRAWL_API_KEY });
const crawlResult = await firecrawl.crawl('https://en.wikipedia.org/wiki/Portal:Artificial_intelligence', {
limit: 10,
scrapeOptions: {
formats: ['markdown']
}
});
console.log(crawlResult.data);
批量抓取
Copy
Ask AI
import FirecrawlApp from '@mendable/firecrawl-js';
const firecrawl = new FirecrawlApp({ apiKey: process.env.FIRECRAWL_API_KEY });
// 等待完成
const job = await firecrawl.batchScrape([
'https://en.wikipedia.org/wiki/Machine_learning',
'https://en.wikipedia.org/wiki/Artificial_intelligence',
'https://en.wikipedia.org/wiki/Deep_learning'],
{
options: {
formats: ['markdown']
},
pollInterval: 2,
timeout: 120
}
);
console.log(job.status, job.completed, job.total);
console.log(job);

