Py学习  »  Git

Github 41.2K star,一键抓取网页数据,感觉又刑了!

编程技术进阶 • 11 月前 • 1289 次点击  

点击上方卡片关注我

设置星标 学习更多项目

当你想让AI理解某个网站的内容,却被复杂的网页结构、动态加载和反爬机制困住时,firecrawl 就是你的救星。firecrawl由MendableAI团队开发,核心定位是“为AI应用提供干净的网页数据”。

这是一个开源的网页数据提取工具,通过简单的API调用,就能将任意网站“啃”成AI可理解的Markdown或结构化数据,无需手动解析HTML,更不用头疼站点地图!

图片

核心功能

1. 网页抓取(Scrape):精准提取单页内容

只需一个URL,就能获取页面的Markdown、HTML、截图或结构化数据,甚至支持PDF、DOCX等媒体文件解析。

# 示例:抓取Firecrawl文档页
curl -X POST https://api.firecrawl.dev/v1/scrape \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{"url": "https://docs.firecrawl.dev", "formats": ["markdown", "html"]}'

2. 全网爬取(Crawl):深度探索网站所有页面

无需站点地图,自动发现并爬取网站所有可访问的子页面,返回LLM友好的数据格式。

# 示例:爬取Firecrawl文档站,最多10页
curl -X POST https://api.firecrawl.dev/v1/crawl \
-d '{"url": "https://docs.firecrawl.dev", "limit": 10, "scrapeOptions": {"formats": ["markdown"]}}'

3. 网站地图(Map):快速绘制网站链接图谱

输入一个URL,瞬间获取该网站的所有链接,支持关键词搜索过滤,找特定页面快如闪电。

# 示例:获取Firecrawl官网中含“docs”的链接
curl -X POST https://api.firecrawl.dev/v1/map \
-d '{"url": "https://firecrawl.dev", "search": "docs"}'

4. 网页搜索(Search):边搜边抓的智能引擎

直接搜索网页内容,并可选抓取搜索结果页面,一步到位获取所需数据。




    
# 示例:搜索“什么是Firecrawl”并抓取结果
curl -X POST https://api.firecrawl.dev/v1/search \
-d '{"query": "what is firecrawl?", "limit": 5, "scrapeOptions": {"formats": ["markdown"]}}'

5. 结构化提取(Extract):AI驱动的数据整理大师

通过Prompt或Schema,让AI从网页中提取指定结构的数据,比如公司使命、开源属性等。

# 示例:从多个网站提取公司信息
curl -X POST https://api.firecrawl.dev/v1/extract \
-d '{"urls": ["https://firecrawl.dev/*"], "prompt": "Extract company mission and open source status"}'

技术亮点

  • 对抗反爬:自动绕过机器人检测,内置代理轮换、请求头伪装、动态延迟等机制,轻松突破Cloudflare等反爬屏障,甚至支持登录态爬取(自定义请求头)。

  • 动态内容处理:JS渲染页面也能抓,基于Playwright内核,完整渲染JavaScript生成的内容,单页应用(SPA)和动态加载的内容都能完美捕获。

  • LLM原生支持:数据直接喂给大模型,输出格式天然适配Langchain、Llama Index等LLM框架,无需二次处理即可用于构建“聊天机器人”“文档问答”等应用。

  • 批量处理与异步接口:高效处理海量数据,支持一次性提交数千个URL批量爬取,通过异步接口获取任务状态,大幅提升数据采集效率。

快速上手

爬取网站并提取结构化数据(Python SDK)

# 安装:pip install firecrawl-py
from firecrawl.firecrawl import FirecrawlApp
from pydantic import BaseModel, Field
from typing import List

# 定义数据模型
class ArticleSchema(BaseModel):
    title: str
    points: int
    commentsURL: str

class TopArticlesSchema(BaseModel):
    top: List[ArticleSchema] = Field(..., description="Top 5 stories")

# 初始化SDK
app = FirecrawlApp(api_key="fc-YOUR_API_KEY")

# 爬取Hacker News并提取Top 5文章
result = app.scrape_url(
    "https://news.ycombinator.com",
    formats=["json"],
    json_config=TopArticlesSchema.model_json_schema()
)
print(result.json)  # 直接获取结构化数据

使用Zod定义提取规则(Node.js SDK)

// 安装:npm install @mendable/firecrawl-js
import FirecrawlApp from"@mendable/firecrawl-js";
import { z } from"zod";

const app = new FirecrawlApp({ apiKey"fc-YOUR_API_KEY" });

// 用Zod定义提取规则
const schema = z.object({
top: z.array(
    z.object({
      title: z.string(),
      points: z.number(),
      commentsURL: z.string(),
    })
  ).length(5).describe("Top 5 stories"),
});

// 爬取并提取数据
const result = await app.scrapeUrl("https://news.ycombinator.com", {
jsonOptions: { extractionSchema: schema },
});
console.log(result.data.json);

云服务版

直达链接:https://www.firecrawl.dev/

图片

开源与云服务

Firecrawl采用 AGPL-3.0开源协议 ,核心功能完全免费,但云服务版本(firecrawl.dev)提供了更强大的企业级能力:

功能对比开源版(本地部署)云服务版(Firecrawl Cloud)
基础爬取/提取
反爬与代理管理
需手动配置
内置代理池、自动反爬策略
动态动作(点击/滚动)
✅(支持模拟用户操作后提取数据)
批量处理
有限支持
支持数千URL并发处理
企业级支持
✅(SSO、自定义部署、优先技术支持)

总结

Firecrawl,堪称 AI 的数据 “翻译官”!它能一键将任意网站生成 Markdown / 结构化数据,轻松突破反爬屏障、渲染动态页面,连 PDF 等媒体文件都能解析。支持从单页抓取到全网爬取,搭配 AI 驱动的结构化提取,用 Prompt 就能精准捞数据。Python/Node 等多语言 SDK 让集成零门槛,还能对接 Langchain 等 LLM 框架。采用 AGPL-3.0 开源,云服务版更有批量处理、动态动作等企业级能力,适用于 AI 开发、数据研究等场景。


我们给大家建立了一个AI编程技术交流群,汇聚众多使用AI编程工具的程序员,加群可获取一手资讯和实战经验,还有优质资源共享。

扫码添加微信,回复「AI编程」,拉你进群。

图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/185495