网页转大模型数据的爬虫神器,助力AI应用与训练优化
时间:2026-07-25 | 作者:318050 | 阅读:0在AI应用真正落地时,一个很现实的问题是:如何把网页上大量的内容,高效转换成大模型能直接读懂的格式?无论是做知识库构建,还是给RAG系统喂数据,这一步往往都卡在"数据清洗"上。手动复制粘贴?费时费力,还容易丢格式。用传统爬虫?处理JS渲染的页面又很头疼。
不过,最近火起来的一款工具——Firecrawl,倒是把这个痛点解决得很干脆。它能把任何网站一键转成干净的Markdown文档或结构化数据,而且集抓取、搜索、数据清洗、提取于一体,一个API搞定全套流程,专为LLM场景设计。
Firecrawl 的特点
- 即使网站没有提供站点地图(sitemap),也能自动抓取所有可访问的子页面。
- 对于依赖Ja vaScript渲染内容的现代网站,也能顺利采集数据。
- 返回的是干净、格式工整的Markdown文档,可以直接喂给LLM使用。
- 抓取过程支持并行处理,效率很高,结果返回很快。
- 内置缓存机制——除非内容有更新,否则不必重复搜索,节省资源和时间。
- 由LLM工程师打造,输出的数据就是你想要的那种纯净格式。
最近,Firecrawl还上线了一个叫LLM Extract的新功能——借助大语言模型,直接从网页中提取你需要的结构化信息,进一步简化了数据处理的路径。
如何使用 Firecrewl
Firecrewl的使用方式非常多样,基本做到了"开箱即用"。既支持通过API或SDK直接集成,也可以在LangChain或Llama Index这类主流框架里直接调用,甚至支持本地部署。
- API
- Python SDK
- Node SDK
- Langchain Integration
- Llama Index Integration
- LangchainJS
- Zapier
除了上述的云服务方式,Firecrewl也支持本地部署,方便数据不出网的场景。
Firecrewl 快速上手
前置条件
使用之前,需要先注册Firecrawl并获取API key。
一、使用 API
1. 抓取 URL
提交一个URL,就能抓取它和所有可访问的子页面。请求会返回一个任务ID,可以用来查询抓取进度。
curl -X POST https://api.firecrawl.dev/v0/crawl
-H 'Content-Type: application/json'
-H 'Authorization: Bearer YOUR_API_KEY'
-d '{
"url": "https://mendable.ai"
}'
调用成功后会返回一个 jobId:
{ "jobId": "1234-5678-9101" }
2. 获取指定抓取任务的状态
使用任务ID来检查抓取进度并获取最终结果。
curl -X GET https://api.firecrawl.dev/v0/crawl/status/1234-5678-9101
-H 'Content-Type: application/json'
-H 'Authorization: Bearer YOUR_API_KEY'
成功调用后,返回的JSON会包含任务状态和抓取到的数据:
{
"status": "completed",
"current": 22,
"total": 22,
"data": [
{
"content": "Raw Content ",
"markdown": "# Markdown Content",
"provider": "web-scraper",
"metadata": {
"title": "Mendable | AI for CX and Sales",
"description": "AI for CX and Sales",
"language": null,
"sourceURL": "https://www.mendable.ai/"
}
}
]
}
二、使用 Python SDK
1. 安装 Python SDK
pip install firecrawl-py
2. 抓取网站
from firecrawl import FirecrawlApp
app = FirecrawlApp(api_key="YOUR_API_KEY")
crawl_result = app.crawl_url('mendable.ai', {'crawlerOptions': {'excludes': ['blog/*']}})
# 获取 Markdown 内容
for result in crawl_result:
print(result['markdown'])
3. 抓取单个 URL
如果只需抓取单个页面,可以用 scrape_url 方法,它会以字典形式返回抓取的数据。
url = 'https://example.com'
scraped_data = app.scrape_url(url)
三、使用 Node SDK
1. 安装 Node SDK
npm install @mendable/firecrawl-js
2. 抓取网站
使用 crawlUrl 方法,传入起始URL和可选参数。通过 params 可以指定爬取的最大页面数、允许的域名和输出格式等。
const crawlUrl = 'https://example.com';
const params = {
crawlerOptions: {
excludes: ['blog/'],
includes: [], // lea ve empty for all pages
limit: 1000,
},
pageOptions: {
onlyMainContent: true
}
};
const waitUntilDone = true;
const timeout = 5;
const crawlResult = await app.crawlUrl(
crawlUrl,
params,
waitUntilDone,
timeout
);
3. 抓取 URL
抓取单个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
);
}
4. 从指定 URL 抽取结构化数据
借助LLM Extract功能,可以轻松地从任何URL提取结构化数据。Firecrawl支持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("Top 5 stories on Hacker News"),
});
const scrapeResult = await app.scrapeUrl("https://news.ycombinator.com", {
extractorOptions: { extractionSchema: schema },
});
console.log(scrapeResult.data["llm_extraction"]);
5. 使用搜索查询
通过 search 方法,可以在搜索引擎中搜索短语,并获取排名靠前的结果及相应页面内容。
const query = 'what is mendable';
const searchResults = await app.search(query, {
pageOptions: {
fetchPageContent: true // 获取每个搜索结果的页面内容
}
});
四、在 Langchain 中使用
Firecrawl以文档加载器的方式与Langchain集成,使用起来很方便。
1. 安装 firecrawl-py
pip install firecrawl-py
2. 使用 FireCrawlLoader
crawl 模式:抓取网站和所有可访问的子页面,并以Markdown格式返回每个子页面。
from langchain_community.document_loaders import FireCrawlLoader
loader = FireCrawlLoader(
api_key="YOUR_API_KEY",
url="https://firecrawl.dev",
mode="crawl"
)
docs = loader.load()
scrape 模式:抓取单个网址,并以Markdown格式返回当前页面。
loader = FireCrawlLoader(
api_key="YOUR_API_KEY",
url="https://firecrawl.dev",
mode="scrape",
)
data = loader.load()
五、在 Langchain JS 中使用
1. 安装 @mendableai/firecrawl-js
npm install @mendableai/firecrawl-js
2. 使用 FireCrawlLoader
import { FireCrawlLoader } from "langchain/document_loaders/web/firecrawl";
const loader = new FireCrawlLoader({
url: "https://firecrawl.dev", // 要抓取的URL
apiKey: process.env.FIRECRAWL_API_KEY, // 可选,默认读取环境变量 FIRECRAWL_API_KEY
mode: "scrape", // 模式:"scrape" 抓取单个页面,"crawl" 抓取所有子页面
params: {
// 可选参数,参考Firecrawl API文档
// 文档地址:https://docs.firecrawl.dev
},
});
const docs = await loader.load();
Firecrawl官网上还贴出了5个实际使用示例,比如结合Groq Llama 3 API来实现"与网站对话"的功能。如果感兴趣,可以直接去看官方文档,里面提供了详细的实现步骤。
来源:整理自互联网
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 好丽友用AI打造卓越客户体验案例
- 时间:2026-07-25
-
- 构建客户为中心智能零售生态提升体验与运营效率
- 时间:2026-07-25
-
- OpenAI生态布局 GPT-4o免费或许只是开始
- 时间:2026-07-25
-
- 制药行业大模型驱动GenAI数据产品落地实践
- 时间:2026-07-25
-
- LlamaFS利用Llama3 AI自动整理电脑杂乱文件
- 时间:2026-07-25
-
- 钉钉AI时代智能工作新视界 细节价值非凡
- 时间:2026-07-25
-
- 数据+AI赋能美妆营销,解锁品牌增长新路径
- 时间:2026-07-25
-
- Namelix AI工具轻松创建独特品牌名称指南
- 时间:2026-07-25
精选合集
更多大家都在玩
热门话题
大家都在看
更多-
- iOS 13.5.1电池续航差是电池耗电问题吗
- 时间:2026-07-25
-
- 苹果教育优惠开启 附购买攻略
- 时间:2026-07-25
-
- 苹果iOS 14 beta 2 测试版主要更新内容:除细节变化外修复多项Bug
- 时间:2026-07-25
-
- iOS 14 beta 2 是否解决内存占用过多问题?
- 时间:2026-07-25
-
- 受欢迎的奥特曼游戏有哪些
- 时间:2026-07-25
-
- iOS 14信息应用5大更新变化
- 时间:2026-07-25
-
- iOS 14正式版上线时间公布 官方全新介绍
- 时间:2026-07-25
-
- 最新苹果iOS 14 Beta 2版本更新内容全解析与升级教程
- 时间:2026-07-25
