Web爬蟲利器FireCrawl:全方位助力AI訓練與高效數據抓取。本地部署方式

開源地址: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.pswp.cn/news/898594.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/898594.shtml
英文地址,請注明出處:http://en.pswp.cn/news/898594.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

探秘Transformer系列之(16)--- 資源占用

探秘Transformer系列之(16)— 資源占用 文章目錄 探秘Transformer系列之(16)--- 資源占用0x00 概述0x01 背景知識1.1 數據類型1.2 進制&換算數字進制存儲度量換算 1.3 參數顯存占用有參數的層無參數的層所需資源 1.4 計算量 0…

jaeger安裝和簡單使用

文章目錄 jaeger安裝和使用什么是jaegerjaeger安裝 jaeger安裝和使用 什么是jaeger 官網:https://www.jaegertracing.io/ Jaeger 是一個分布式追蹤系統。Jaeger的靈感來自 Dapper 和 OpenZipkin,是一個由 Uber 創建并捐贈給 云原生計算基金會&#xf…

【Mybatis-plus】在mybatis-plus中 if test標簽如何判斷 list不為空

博主介紹:?全網粉絲22W,CSDN博客專家、Java領域優質創作者,掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域? 技術范圍:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大數據、物…

FRP在物聯網設備中的穿透方案

物聯網設備常位于NAT后,FRP為其提供穩定穿透鏈路。 配置要點 輕量化部署:使用ARM版本FRP客戶端,適配樹莓派等設備9。 自啟動腳本:通過systemd或crontab實現設備重啟后自動連接26。 低功耗優化:調整心跳間隔&#xf…

【遞歸,搜索與回溯算法篇】- 名詞解釋

一. 遞歸 1. 什么是遞歸? 定義: 函數自己調用自己的情況關鍵點: ?終止條件: 必須明確遞歸出口,避免無限遞歸 ?子問題拆分: 問題需能分解成結構相同的更小的子問題缺點: ?棧溢出風險&#x…

條件變量,鎖,共享數據的關系

條件變量、共享數據和鎖之間的三方耦合關系源于多線程環境下對資源訪問的同步需求。以下是關鍵點分析: 條件變量中通常會對共享數據進行判斷和處理,如果不加鎖就會出現數據競爭的問題,所以并不是條件變量要跟鎖一起使用,而是上鎖為…

大屏技術匯集【目錄】

Cesium 自從首次發布以來,經歷了多個版本的迭代和更新,每個版本都帶來了性能改進、新功能添加以及對現有功能的優化。以下是 Cesium 一些重要版本及其主要特點: 主要版本概述 Cesium 1.0 (2012年) 初始版本發布,確立了Cesium作為…

圖解AUTOSAR_CP_EEPROM_Abstraction

AUTOSAR EEPROM抽象模塊詳細說明 基于AUTOSAR標準的EEPROM抽象層技術解析 目錄 1. 概述 1.1 核心功能1.2 模塊地位2. 架構概覽 2.1 架構層次2.2 模塊交互3. 配置結構 3.1 主要配置容器3.2 關鍵配置參數4. 狀態管理 4.1 基本狀態4.2 狀態轉換5. 接口設計 5.1 主要接口分類5.2 接…

C++相關基礎概念之入門講解(下)

1. 引用 ? int main() {const int a10;int& aaa;aa;cout<<aa<<endl; } 引用 不是新定義一個變量&#xff0c;而 是給已存在變量取了一個別名 &#xff0c;編譯器不會為引用變量開辟內存空 間&#xff0c;它和它引用的變量 共用同一塊內存空間&#xff08;初…

注意力機制,本質上是在做什么?

本文以自注意機制為例&#xff0c;輸入一個4*4的矩陣 如下&#xff1a; input_datatorch.tensor([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16] ],dtypetorch.float) 得到Q和K的轉置如下。 此時&#xff0c;計算QK^T ,得到如下結果 第一行第一個位置就是第一條樣本和第…

記一次wsl2+docker無法運行的經歷

前情提要 由于某個大創項目的需要和對貓娘機器人的迫切渴求&#xff08;bushi 需要在電腦里面安裝docker desktop。由于電腦里面安裝了wsl2環境 因此決定使用wsl2dockerdesktop的方式配置docker 遇到的問題 在像往常一樣安裝docker desktop并且啟動時 提示錯誤&#xff1a; …

PageHelper插件依賴引入不報錯,但用不了

情況: 父模塊pom. Xml 引入1. 4. 0以上版本的pagehelper-spring-boot-starter。 要用到插件的子模塊&#xff0c;去掉版本號&#xff0c;引入和父模塊一樣的依賴。 引入成功&#xff0c;沒有報錯&#xff0c;但是打開右邊的maven里面沒有找到PageHelper插件。 終端清空并重…

Windows搭建免翻墻的BatteryHistorian

文章參考 GitCode - 全球開發者的開源社區,開源代碼托管平臺 免翻墻的BatteryHistorian主要原理&#xff1a;修改go源碼 1.安裝Java環境 1.點擊下載 Java JDK&#xff0c;并安裝,一路next 2.java -version 檢驗是否安裝成功 2.安裝Git工具 1、點擊下載 Git&#xff0c;并…

項目中pnpm版本和全局pnpm版本不一致

項目中pnpm版本和全局pnpm版本不一致 檢查package.json中&#xff0c;是否存在"packageManager": “pnpm8.6.10”&#xff0c;限制了pnpm的版本。

透析Vue的nextTick原理

nextTick 是 Vue.js 中的一個核心機制&#xff0c;用于在 下一次 DOM 更新周期后 執行回調函數。它的核心原理是 利用 JavaScript 的事件循環機制&#xff08;Event Loop&#xff09;&#xff0c;結合微任務&#xff08;Microtask&#xff09;或宏任務&#xff08;Macrotask&am…

WRF/Chem 模式技術解讀:為大氣污染治理提供有力支撐

技術點目錄 第一部分、WRF-Chem模式應用案例和理論基礎第二部分、Linux環境配置及WRF-CHEM第三部分、WRF-Chem模式編譯&#xff0c;排放源制作第四部分、WRF-Chem數據準備&#xff08;氣象、排放、初邊界條件等&#xff09;&#xff0c;案例實踐第五部分、模擬結果提取、數據可…

ccfcsp2701如此編碼

//如此編碼 #include<iostream> using namespace std; int main(){int n,m;cin>>n>>m;int a[21],b[21],c[21];for(int i1;i<n;i){cin>>a[i];}c[0]1;for(int i1;i<n;i){c[i]c[i-1]*a[i];}b[1](m%c[1])/c[0];int s1,s20;for(int i2;i<n;i){s2s2…

74HC04(反相器)和74HC14(反相器、施密特觸發器)的區別

74HC04和74HC14的具體區別詳解 同樣具有反相器功能&#xff0c;你知道74HC04和74HC14的具體區別嗎&#xff1f; 74HC04 對于74HC04很好理解&#xff0c;輸入低電平&#xff0c;輸出高電平&#xff1b;輸入高電平&#xff0c;輸出低電平。 建議操作條件&#xff1a; 下圖是TI的…

如何緩解大語言模型推理中的“幻覺”(Hallucination)?

目錄 如何緩解大語言模型推理中的“幻覺”&#xff08;Hallucination&#xff09;&#xff1f; 1. 什么是大語言模型的“幻覺”&#xff08;Hallucination&#xff09;&#xff1f; 幻覺的常見類型 2. 如何緩解大模型的幻覺問題&#xff1f; 方法 1&#xff1a;使用知識檢索…

Linux權限管理詳解

Linux權限管理系統 Linux作為一個多用戶操作系統&#xff0c;其權限管理系統是保障系統安全的重要組成部分。通過合理設置文件和目錄的權限&#xff0c;可以有效控制用戶對系統資源的訪問。 一、基本權限概念 Linux系統中的權限分為三類&#xff1a; 讀權限(r)&#xff1a;…