Firecrawl 使用教程
从入门到精通的完整指南
Firecrawl 简介
Firecrawl 是由 Mendable 开发的开源网页抓取与爬虫 API,能将任意网页转换为干净的 Markdown 或结构化数据,专为 LLM 应用设计。支持 JavaScript 渲染页面、自动处理反爬机制、批量抓取和站点地图解析。提供云端 API 和自托管两种部署方式,内置缓存和速率控制,是构建 AI 应用数据管道的理想工具。
详细功能介绍
【工具简介】
Firecrawl 是一款专为 AI/LLM 应用设计的网页抓取 API,将网页内容转换为干净的 Markdown 和结构化数据。
【核心功能】
①网页转 Markdown:智能提取网页正文内容,自动去除导航栏、广告、页脚等噪音,输出干净的 Markdown 格式文本,可直接用于 LLM 上下文。
②JavaScript 渲染支持:基于无头浏览器技术,能处理 React、Vue 等 SPA 单页应用和动态加载内容,不遗漏异步渲染的数据。
③批量爬取与站点地图:支持整站批量抓取,自动发现并遵循 sitemap.xml 和 robots.txt,提供深度控制和 URL 过滤能力。
④结构化数据提取:支持通过 Schema 定义从网页中提取特定字段,如价格、评分、联系方式等,输出结构化 JSON 数据。
⑤反爬处理与缓存:内置代理轮换、请求限速和智能重试机制,支持结果缓存避免重复抓取,提升稳定性和效率。
【适用场景】
【快速入门】
【优缺点分析】
优点:
缺点:
【适合人群】
1Firecrawl网页抓取入门教程:轻松将网页转为结构化数据
入门10分钟
Firecrawl是由Mendable开发的开源网页抓取API,能将任意网页转换为干净的Markdown或结构化数据,专为LLM应用设计,支持JavaScript渲染和反爬机制处理。
一、快速开始
1. 访问Firecrawl官网(firecrawl.dev)注册账号
2. 注册完成后进入Dashboard,在API Keys页面获取你的API Key
3. 安装Python SDK:pip install firecrawl-py
4. 安装Node.js SDK(可选):npm install @mendable/firecrawl-js
5. 配置API Key到环境变量:export FIRECRAWL_API_KEY=你的密钥
6. 如果想自托管,可通过Docker部署,详见官方文档的Self-hosting指南
二、核心功能演示
功能1:单页面抓取为Markdown
这是Firecrawl最基础的功能,将任意网页转为干净的Markdown文本:
from firecrawl import FirecrawlApp
app = FirecrawlApp(api_key=你的密钥)
result = app.scrape_url(https://example.com, params={'formats': ['markdown']})
print(result['markdown'])
抓取结果会自动去除导航栏、广告、页脚等无关内容,只保留主要正文,并转换为格式良好的Markdown。
功能2:批量抓取整个网站
使用Crawl功能可以递归抓取整个网站的所有页面:
result = app.crawl_url(https://docs.example.com, params={'limit': 100})
for page in result['data']:
print(page['metadata']['sourceURL'], len(page['markdown']))
你可以设置limit限制抓取页面数量,配置includePaths/excludePaths过滤特定路径,还能通过sitemap参数自动解析站点地图。
功能3:提取结构化数据
Firecrawl支持使用JSON Schema从网页中提取结构化信息:
result = app.scrape_url(https://example.com/product, params={
'formats': ['extract'],
'extract': {
'schema': {
'type': 'object',
'properties': {
'name': {'type': 'string'},
'price': {'type': 'number'}
}
}
}
})
这样可以直接从商品页面提取名称、价格等结构化数据,非常适合构建数据管道。
三、实际使用案例
案例1:构建AI知识库
将公司文档网站通过Firecrawl批量抓取为Markdown,然后导入向量数据库,即可快速构建RAG(检索增强生成)知识库。相比手动整理文档,效率提升数十倍。
案例2:竞品数据监控
定时抓取竞争对手的产品页面,提取价格、功能列表等结构化数据,存入数据库进行分析对比。Firecrawl的缓存机制还能避免重复抓取,节省API调用次数。
四、常见问题FAQ
Q1:Firecrawl能抓取需要登录的页面吗?
A:Firecrawl的云端API目前主要抓取公开页面。对于需要认证的页面,建议使用自托管版本,可以配置Cookie和Header进行认证抓取。
Q2:抓取速度和限制是怎样的?
A:免费版每月有500次抓取额度。付费版根据套餐不同,支持更高的并发和更多的抓取次数。自托管版本没有次数限制,取决于你的服务器性能。
Q3:如何处理反爬虫网站?
A:Firecrawl内置了JavaScript渲染、代理轮换、浏览器指纹模拟等反反爬能力,大部分网站都能正常抓取。对于特别严格的网站,可调整等待时间和重试参数。
五、小贴士
1. 善用缓存:Firecrawl默认缓存抓取结果,相同URL在一定时间内不会重复抓取,合理利用可以节省额度
2. 使用异步接口:批量抓取时使用async版本的SDK,配合Python的asyncio可以大幅提升效率
3. 先试抓取再批量:大批量抓取前先用单页抓取测试目标网站,确认格式和内容符合预期再进行批量操作