Web爬虫利器FireCrawl:全方位助力AI训练与高效数据抓取。本地部署方式

devtools/2025/3/23 0:02:50/

开源地址:https://github.com/mendableai/firecrawl

01、FireCrawl 项目简介

Firecrawl 是一款开源、优秀、尖端的 AI 爬虫工具,专门从事 Web 数据提取,并将其转换为 Markdown 格式或者其他结构化数据。

Firecrawl 还特别上线了一个新的功能:LLM Extract,即利用大语言模型(LLM)快速完成网页数据的提取,从而转换为LLM-ready的数据。

所以无论你是需要为大语言模型(如 GPT)提供数据训练,还是需要为检索增强生成(RAG)获取高质量数据,FireCrawl 都能够为你提供全面的支持。

02、主要功能

• 强大的抓取能力:几乎能抓取任何网站的内容,无论是简单的静态页面,还是复杂的动态网页,它都能够应对自如。
• 智能的爬取状态管理:提供了分页、流式传输等功能,使得大规模网页抓取变得更加高效。此外,它还具备清晰的错误提示功能,让你在爬取过程中可以快速排查问题,保证数据抓取的顺利进行。
• 多样的输出格式:不仅支持将抓取的内容转换为 Markdown 格式,还支持将其输出为结构化数据(如 JSON)。
• 增强 Markdown 解析:优化 Markdown 解析逻辑,能够输出更干净、更高质量的文本。
• 全面的 SDK 支持:提供了丰富的 SDK,支持多种编程语言(如 Go、Rust 等),并全面兼容 v1 API。
• 快速收集相关链接:新增了/map 端点,可以快速收集网页中的相关链接。这对于需要抓取大量相关内容的用户来说,是一个极其高效的功能。
03、FireCrawl应用场景

1. 大语言模型训练
通过抓取海量网页内容并将其转换为结构化数据,FireCrawl 能够为大语言模型(如 GPT)提供丰富的训练数据。

这对于希望提升模型表现的开发者或企业来说,FireCrawl 是一个理想的工具。

2. 检索增强生成(RAG):
FireCrawl 可以帮助用户从不同网页中获取相关数据,支持检索增强生成(RAG)任务。这意味着你可以通过 FireCrawl 获取并整理数据,用于生成更加精确、更加丰富的文本内容。

3. 数据驱动的开发项目
如果你的项目依赖大量的网页数据,比如训练语言模型、构建知识图谱、数据分析等等,FireCrawl 是一个不二之选。

它可以帮助你快速获取所需数据,并将其转换为你需要的格式,无论是 Markdown 还是 JSON,都能轻松搞定。

4. SEO 与内容优化
对于那些需要进行 SEO 优化或内容监控的项目,FireCrawl 也非常适用。

你可以利用 FireCrawl 爬取竞争对手的网站内容,分析他们的 SEO 策略,或者监控网站内容的变化,帮助你优化自己的网站。

5. 在线服务与工具集成
FireCrawl 提供了易于使用且统一的 API,支持本地部署或在线使用。

你可以将 FireCrawl 无缝集成到现有的服务或工具中,如 Langchain、Dify、Flowise 等,进一步扩展其应用能力。

04、安装与使用

当然 FireCrawl 是支持本地部署的,通过源码进行部署安装服务,但是依赖的语言过多,不仅有Nodejs、Python,还有Rust!还是建议在线体验!

使用方式

官方项目中列了很多通过curl接口命令的方式,其实这样就有些繁琐!

我们可以通过各种API工具来进行请求,使用体验会更好一些。

也可以通过官方部署的网页上功能来进行,效果会更加!

最后就是开发者常用的SDK方式,这里以Python语言为例:

• 安装 Python SDK
代码语言:javascript

pip install firecrawl-py


• 调用接口,抓取目标网页数据
代码语言:javascript

from firecrawl import FirecrawlApp

app = FirecrawlApp(api_key="YOUR_API_KEY")

crawl_result = app.crawl_url('mendable.ai', {'crawlerOptions': {'excludes': ['blog/*']}})

# Get the markdown
for result in crawl_result:
    print(result['markdown'])


• 要抓取单个 URL,需要使用 scrape_url 方法。将 URL 作为参数,并以字典形式返回抓取的数据。
代码语言:javascript

url = 'https://www.xxxx.com'
scraped_data = app.scrape_url(url)


05、总结

作为一名开发者,我们都知道,一个好用的工具可以大大提高我们的工作效率,而 FireCrawl 就是这样一个值得推荐的工具。

无论你是需要爬取大量数据,还是需要将网页内容转换为文档,FireCrawl 都能够帮助你轻松实现这些需求。

六、本地部署方式:

配置.env文件

# .env# ===== Required ENVS ======
NUM_WORKERS_PER_QUEUE=8 
PORT=3002
HOST=0.0.0.0#for self-hosting using docker, use redis://redis:6379. For running locally, use redis://localhost:6379
REDIS_URL=redis://redis:6379#for self-hosting using docker, use redis://redis:6379. For running locally, use redis://localhost:6379
REDIS_RATE_LIMIT_URL=redis://redis:6379 
PLAYWRIGHT_MICROSERVICE_URL=http://playwright-service:3000/html## To turn on DB authentication, you need to set up supabase.
USE_DB_AUTHENTICATION=false# ===== Optional ENVS ======# Supabase Setup (used to support DB authentication, advanced logging, etc.)
SUPABASE_ANON_TOKEN= 
SUPABASE_URL= 
SUPABASE_SERVICE_TOKEN=# Other Optionals
# use if you've set up authentication and want to test with a real API key
TEST_API_KEY=
# set if you'd like to test the scraping rate limit
RATE_LIMIT_TEST_API_KEY_SCRAPE=
# set if you'd like to test the crawling rate limit
RATE_LIMIT_TEST_API_KEY_CRAWL=
# set if you'd like to use scraping Be to handle JS blocking
SCRAPING_BEE_API_KEY=
# add for LLM dependednt features (image alt generation, etc.)
OPENAI_API_KEY=
BULL_AUTH_KEY=@
# use if you're configuring basic logging with logtail
LOGTAIL_KEY=
# set if you have a llamaparse key you'd like to use to parse pdfs
LLAMAPARSE_API_KEY=
# set if you'd like to send slack server health status messages
SLACK_WEBHOOK_URL=
# set if you'd like to send posthog events like job logs
POSTHOG_API_KEY=
# set if you'd like to send posthog events like job logs
POSTHOG_HOST=# set if you'd like to use the fire engine closed beta
FIRE_ENGINE_BETA_URL=# Proxy Settings for Playwright (Alternative you can can use a proxy service like oxylabs, which rotates IPs for you on every request)
PROXY_SERVER=
PROXY_USERNAME=
PROXY_PASSWORD=
# set if you'd like to block media requests to save proxy bandwidth
BLOCK_MEDIA=# Set this to the URL of your webhook when using the self-hosted version of FireCrawl
SELF_HOSTED_WEBHOOK_URL=# Resend API Key for transactional emails
RESEND_API_KEY=# LOGGING_LEVEL determines the verbosity of logs that the system will output.
# Available levels are:
# NONE - No logs will be output.
# ERROR - For logging error messages that indicate a failure in a specific operation.
# WARN - For logging potentially harmful situations that are not necessarily errors.
# INFO - For logging informational messages that highlight the progress of the application.
# DEBUG - For logging detailed information on the flow through the system, primarily used for debugging.
# TRACE - For logging more detailed information than the DEBUG level.
# Set LOGGING_LEVEL to one of the above options to control logging output.
LOGGING_LEVEL=INFO

进入目录,安装部署

docker compose up -d

部署完后访问:http://localhost:3002/test

只要返回响应是 Hello, world! 就表明本地 Firecrawl 启动成功了。


http://www.ppmy.cn/devtools/169274.html

相关文章

Python - 爬虫-网页抓取数据-工具wget

Python - 爬虫之curl 一、wget "wget" 这个名称来源于 “World Wide Web” 与 “get” 的结合。 wget 是在 Linux 下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括 Windows 在内的各个平台上。 wget 是一个下载文件的工具&…

计算机网络(第三章)

数据链路层 一、数据链路层的背景 知识背景梳理: 网络中的主机、路由器、交换机都必须实现数据链路层; 数据链路层使用的信道: 点对点信道:这种信道使用一对一的点对点通信方式。广播信道:使用一对多的广播通信方式&…

在树莓派上如何使用 Vosk检测唤醒词

一、在树莓派上使用 Vosk 的步骤 Vosk 是一个轻量级的开源语音识别工具包,能在树莓派上高效运行。下面为你详细介绍在树莓派上使用 Vosk 的步骤: 1. 安装必要的依赖 首先,你需要更新系统软件包列表,并且安装一些必要的依赖库。…

HCIP交换机hybrid接口实验

目录 一、实验拓扑 二、实验需求 三、需求分析 四、实验步骤 1、交换机上的配置 SW1: SW2: SW3: 2、路由器上的配置 五、实验结果 1.dhcp获取结果验证 2.连通性测试 六、本练习难点 一、实验拓扑 二、实验需求 1、PC1和PC3所在接口为access接口&#x…

【SpringSecurity】详细核心类与过滤器流程讲解和封装通用组件实战

Spring Security 全面介绍 1. 什么是 Spring Security? Spring Security 是一个功能强大且高度可定制的认证和访问控制框架,是保护基于 Spring 的应用程序的标准工具。它是一个专注于为 Java 应用程序提供认证和授权的框架,实际上它是 Spri…

【算法】 分治-归并 算法专题

[toc[ 1.leetcode 912.排序数组 1.1 题目 题目链接 1.2 思路 上图 左侧是归并排序&#xff1a;类似二叉树后序遍历 右侧是快速排序&#xff1a;类似二叉树前序遍历 1.3 代码 class Solution { public:vector<int> tmp;vector<int> sortArray(vector<int&…

C#自定义曲线便器功能实现(简化版)

目录 一、曲线编辑器实现功能 二、实现方法说明 三、关键代码说明 1、绘制背景板和曲线 2、绘制坐标系面板 3、绘制曲线 四、工程下载连接 一、曲线编辑器实现功能 添加或者删除控制点&#xff0c;通过移动控制点来修改曲线形状 二、实现方法说明 1、坐标系系统&#x…

A SURVEY ON POST-TRAINING OF LARGE LANGUAGE MODELS——大型语言模型的训练后优化综述——第8部分——数据

8 数据集 后训练技术被精心设计以提高LLMs对特定领域或任务的适应性&#xff0c;而数据集则是这一优化过程的基石。对先前研究[457, 82]的仔细审查强调了数据的质量、多样性和相关性如何深刻影响模型的有效性&#xff0c;并经常决定后训练努力的成功与否。为了阐明数据集在此背…