11.8k Star!强大的爬虫工具,让你轻松获取任意网站数据!
面对互联网上各种各样信息,网络爬取成为我们从海量信息中获取数据的重要手段。
然而,对于小白或非技术人员来说,使用爬虫工具常常让它们望而却步。
无独有偶,今天在 GitHub Treding 榜单上发现一款开源且强大的的 Web 爬虫工具:Firecrawl。
项目介绍
Firecrawl:它能够从任意网站链接中爬取到网站的内容并将其转换为 Markdown 或结构化数据。
甚至能抓取到网站所有可访问的子页面,并为你提供每个页面的干净数据。无需站点地图。

另外,还提供了易于使用且统一的 API,支持本地部署或在线使用,同时还支持与各种工具集成使用,如 Langchain、Dify、Flowise 等。
项目开源至今,已经获得了 11.8k Star 数,多次登榜 GitHub Treding 可以说是一款非常优秀的项目。
使用指南
方式一:在线体验
在其官网上可直接在线免费体验,提供了三种模式:
Single URL:仅抓取指定的 URL,而不抓取子页面。
Crawl:抓取 URL 及其所有可访问的子页面。
Map:在几秒钟内输出所有网站的网址。

方式二:使用 API
FireCrawl 提供易于使用的 API,但需要先在 Firecrawl 官网上注册并获取 API 密钥。
自行托管后台服务提供了 API 和 Python、Node 的 SDK,以及和与现有一些 AI 工具集成,如 Langchain、Dify、Flowise、Llama Index 等
另外,也可以在本地运行,可在官网上查看详细部署指南。
使用方式
当获取到密钥之后,以使用 Node 为例,简单下如何使用。
安装依赖包;
npm install @mendable/firecrawl-js
将 API 密钥设置为环境变量
FIRECRAWL_API_KEY
;如果想爬取单个 URL,可使用
scrapeUrl
方法;
try { const url = 'https://example.com'; const scrapedData = await app.scrapeUrl(url); console.log(scrapedData);} catch (error) { console.error( 'Error occurred while scraping:', error.message );}
如果要爬取网站信息,可使用
crawlUrl
方法。该方法以 URL 起始和可选参数作为参数。params
参数允许你爬取人物的附加选项,例如最大爬取页面数、允许的域和输出格式。
const crawlUrl = "https://example.com";const params = { crawlerOptions: { excludes: ["blog/"], includes: [], // leave empty for all pages limit: 1000, }, pageOptions: { onlyMainContent: true, },};const waitUntilDone = true;const timeout = 5;const crawlResult = await app.crawlUrl( crawlUrl, params, waitUntilDone, timeout);
通过
checkCrawlStatus
方法检查爬取状态。
const status = await app.checkCrawlStatus(jobId);console.log(status);
通过 LLM 提取,轻松地从任何 URL 中提取结构化数据。
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上的前5个故事"),});
const scrapeResult = await app.scrapeUrl("https://news.ycombinator.com", { extractorOptions: { extractionSchema: schema },});
console.log(scrapeResult.data["llm_extraction"]);
通过
search
方法,在搜索引擎中搜索查询并获取顶级结果及每个结果的页面内容。
const query = 'what is mendable?';const searchResults = await app.search(query, { pageOptions: { fetchPageContent: true // 获取每个搜索结果的页面内容 }});
写在最后
以上便是 Firecrawl 工具的详细介绍。
目前,项目一直在快速迭代更新很多实用的功能,逐步完善并稳定。
如果你需要为大语言模型训练、RAG 提供数据,相信这款爬虫工具,能大大显著提升你的效率。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
