❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 功能:FireCrawl 支持自动爬取网站及其子页面,抓取单个 URL 内容,并提取结构化数据。
- 技术:基于网络爬虫技术,处理动态内容,并利用大型语言模型进行数据提取。
- 应用:适用于大模型训练、检索增强生成(RAG)、数据驱动开发等多种场景。
正文(附运行示例)
FireCrawl 是什么
FireCrawl 是一款开源的 AI 网络爬虫工具,专门用于 Web 数据提取,能够将网页内容转换为 Markdown 或其他结构化数据。它具备强大的抓取能力,支持动态网页内容的处理,并提供智能爬取状态管理和多样的输出格式。
FireCrawl 集成了 LLM Extract 功能,利用大型语言模型快速完成数据提取,适用于大模型训练、检索增强生成(RAG)、数据驱动开发项目等多种场景。
FireCrawl 的主要功能
- 爬取:自动爬取网站及其所有可访问的子页面,将内容转换为 LLM 就绪格式。
- 抓取:抓取单个 URL 的内容,并以 Markdown、结构化数据等格式提供。
- 映射:输入网站 URL,快速获取网站上的所有链接。
- LLM 提取:从抓取的页面中提取结构化数据。
- 批量抓取:同时抓取多个 URL。
- 网页交互:在抓取内容之前,对网页执行点击、滚动、输入等操作。
- 搜索:搜索网络,获取最相关的结果,并抓取页面内容。
FireCrawl 的技术原理
- 网页爬取:利用网络爬虫技术,根据提供的 URL 递归访问网站页面。
- 内容解析:解析网页的 HTML 内容,提取所需数据。
- LLM 就绪格式:将提取的内容转换成适合大型语言模型处理的格式,如 Markdown 或结构化数据。
- 动态内容处理:处理 JavaScript 渲染的动态内容,确保能抓取由用户交互生成的数据。
- 反反爬虫技术:使用代理、自定义头部等技术绕过网站的反爬虫机制。
- 数据提取与结构化:基于自然语言处理技术,从非结构化的网页内容中提取结构化数据。
如何运行 FireCrawl
1. 安装 Python SDK
pip install firecrawl-py
2. 爬取网站
from firecrawl.firecrawl import FirecrawlApp
app = FirecrawlApp(api_key="fc-YOUR_API_KEY")
# 爬取网站
crawl_status = app.crawl_url(
'https://firecrawl.dev',
params={
'limit': 100,
'scrapeOptions': {
'formats': ['markdown', 'html']}
},
poll_interval=30
)
print(crawl_status)
3. 提取结构化数据
from firecrawl.firecrawl import FirecrawlApp
from pydantic import BaseModel, Field
app = FirecrawlApp(api_key="fc-YOUR_API_KEY")
class ArticleSchema(BaseModel):
title: str
points: int
by: str
commentsURL: str
class TopArticlesSchema(BaseModel):
top: List[ArticleSchema] = Field(..., max_items=5, description="Top 5 stories")
data = app.scrape_url('https://news.ycombinator.com', {
'formats': ['extract'],
'extract': {
'schema': TopArticlesSchema.model_json_schema()
}
})
print(data["extract"])
资源
- 项目官网:https://firecrawl.dev
- GitHub 仓库:https://github.com/mendableai/firecrawl
- API 文档:https://docs.firecrawl.dev/api-reference/introduction
- Python SDK 文档:https://docs.firecrawl.dev/sdks/python
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦