本地部署 Firecrawl 爬虫让 AI 知识库更丰满

https://www.firecrawl.dev/

firecrawl-logo-with-fire.png
firecrawl-logo-with-fire.png

什么是Firecrawl

Firecrawl 是一款 可以将网站转换为 便于AI处理的Markdown 格式的爬虫工具 ,主要 提供 API 服务 ,无需站点地图,只需要接收一个 URL 地址就可以爬取网站及网站下可访问的所有子页面内容。

本地部署Firecrawl

https://github.com/mendableai/firecrawl/blob/main/CONTRIBUTING.md

For a simpler setup, you can use Docker Compose to run all services:

  1. Prerequisites: Make sure you have Docker and Docker Compose installed
  2. Copy the .env.example file to .env in the /apps/api/ directory and configure as needed

  3. From the root directory, run: docker compose up
    This will start Redis, the API server, and workers automatically in the correct configuration.

git clone https://github.com/mendableai/firecrawl.git
cd firecrawl

创建.env文件

cp apps/api/.env.example apps/api/.env

需要使用LLM的话修改一下OPENAI_API_KEY和OPENAI_BASE_URL

OPENAI_API_KEY=xxx 
OPENAI_BASE_URL=xxx

构建并启动

docker compose build
docker compose up -d

国内可能下载playwright很慢,可以修改「apps/playwright-service-ts/Dockerfile」

RUN echo "deb http://mirrors.aliyun.com/debian/ bookworm main non-free contrib\n\  
deb http://mirrors.aliyun.com/debian/ bookworm-updates main non-free contrib\n\  
deb http://mirrors.aliyun.com/debian-security bookworm-security main non-free contrib" > /etc/apt/sources.list  

# Install Playwright dependencies  
ENV PLAYWRIGHT_DOWNLOAD_HOST=https://npmmirror.com/mirrors/playwright/  
RUN npx playwright install --with-deps

测试一下

curl -X GET http://localhost:3002/test

使用python调用

pip install firecrawl-py
import logging  
from firecrawl import FirecrawlApp  

logging.basicConfig(level=logging.INFO)  
logger = logging.getLogger(__name__)  


def main():  
    try:  
        app = FirecrawlApp(api_key=None, api_url="http://localhost:3002")  
        params = {  
            'formats': ['markdown'],  
        }  
        logger.info("开始抓取网页...")  
        scrape_status = app.scrape_url('https://www.kujiale.com/', params=params)  
        logger.info("抓取结果:")  
        print(scrape_status)  
    except Exception as e:  
        logger.error(f"抓取过程中发生错误: {str(e)}")  
        raise  


if __name__ == "__main__":  
    main()
image.png
image.png

image.png
image.png

从结果可以看到它会提取一些内容,方便直接将数据给AI或者插入RAG中进行后续操作
image.png
image.png
### FireCrawl 爬虫使用教程 #### 安装与配置 为了开始使用 FireCrawl,首先需要安装相应的软件包。对于 Node.js 用户来说,可以通过 npm 来完成这一操作: ```bash npm install @mendable/firecrawl-js ``` 这一步骤会下载并安装 `@mendable/firecrawl-js` SDK 到项目中[^3]。 #### 初始化设置 一旦安装完毕,在 JavaScript 或 TypeScript 文件里引入该库,并创建一个新的实例来初始化 FireCrawl 对象: ```javascript const { FireCrawl } = require('@mendable/firecrawl-js'); // 创建新的 FireCrawl 实例 let firecrawl = new FireCrawl(); ``` 通过这种方式,能够快速启动一个基本的爬虫环境,准备好执行后续的任务。 #### 数据抓取与处理 FireCrawl 的核心功能之一是从指定网页上获取信息并将这些非结构化的 HTML 转换成易于使用的 JSON 格式的结构化数据。此过程不仅限于单一页面;它还支持遍历整个站点下的多个链接,从而实现广泛的数据收集工作[^2]。 例如,如果想要从某个特定 URL 开始进行爬取,则只需调用相应的方法即可: ```javascript firecrawl.crawl('https://example.com', { depth: 1, // 设置爬行深度 }).then((data) => console.log(data)); ``` 这段代码将会访问给定的目标网址,并按照设定的最大递归层数(本例中为一层),依次读取各个子页的内容,最终返回整理后的结果集。 #### 应用场景拓展 除了基础的信息采集外,借助内置的大规模语言模型能力,FireCrawl 还能进一步解析复杂类型的在线资源,比如动态加载的文章片段或是嵌入式媒体文件等特殊元素。因此非常适合用于构建搜索引擎索引、训练机器学习算法以及其他依赖高质量外部输入的应用场合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值