Fire Crawl Extract简介
Firecrawl是一款由Mendable.ai 开发的强大的网页抓取工具,旨在简化将整个网站转换为适合大语言模型(LLM)使用的Markdown或结构化数据的过程。它可以接受一个URL,爬取整个网站并将内容转换为干净的Markdown或结构化数据,细致地遍历所有可访问的子页面,无需站点地图,适用于AI模型训练、内容聚合和数据分析等多种应用场景。
功能特性
1. 强大的爬取能力:
能够自动爬取网站及其所有可访问的子页面,无论是简单的静态页面还是复杂的动态网页都可以抓取,甚至在网站使用JavaScript呈现内容时也能收集数据,并将内容转换为LLM就绪格式,例如转换为Markdown或结构化数据(如JSON)。
2. 智能数据提取:
提供了使用大语言模型(LLM)的智能提取选项,允许根据指定的模式从网页中提取结构化数据,用户可以定义提取提示和模式,使数据提取过程高度自定义和精确。
3. 支持多种方式集成
- API支持:是一个API服务,可以通过简单的API调用启动爬取过程,API会返回一个任务ID用于跟踪爬取状态,而后可以通过提供任务ID发送请求来检查爬取任务的状态,API响应包括状态和提取的数据,以原始和Markdown格式返回。
- SDK支持:为Python和Node.js 提供了强大的SDK支持,确保能无缝集成到各种开发环境中。例如在Python中可以利用其SDK从URL提取结构化数据;在Node.js 中也能方便地进行安装和使用相关SDK来执行爬取等操作。
4. 自托管选项:
对于需要完全控制数据提取过程的用户,Firecrawl提供了自托管选项,这确保了数据隐私和根据特定组织需求进行的定制化。
5. 缓存功能:
会缓存内容,因此除非存在新内容,否则不必等待完全抓取,提高了效率。
6. 清晰的错误提示:
提供清晰的错误提示功能,帮助用户在爬取过程中快速排查问题。
7. 支持多编程语言及功能兼容:
除了对Python和Node.js 支持外,还支持多种编程语言(如Go、Rust等),并全面兼容v1API,用户可以根据自己的需求定制和扩展Firecrawl的功能。并且提供分页、流式传输等功能,使得大规模网页抓取变得更加高效。
Fire Crawl Extract的操作步骤
一、使用API进行操作
- 获取API密钥:首先需要在Firecrawl网站上注册并获取API密钥,此密钥用于验证API请求并访问Firecrawl的服务。
- 提交爬取任务
- 使用获取到的API密钥向Firecrawl API发送请求来启动爬取任务,并提供目标URL,这将会提交一个爬取作业,并返回一个作业ID(即任务ID)以检查爬取状态。例如,假设已经获取到API密钥,且有目标网址是https://example.com ,就可以按照API使用要求构造请求并发送给Firecrawl API服务来启动爬取任务。
- 检查任务状态及获取结果:可以通过提供任务ID,再次发送请求来检查爬取任务的状态。API响应包括状态和提取的数据,数据将以原始和Markdown格式返回。
二、使用Python SDK操作
- 安装Firecrawl Python SDK-如果尚未安装:如果通过Python使用Firecrawl的SDK,首先要确保对应的SDK包已经安装。如果没有安装则需要使用类似
pip install firecrawl
命令进行安装(假设以pip工具管理Python包),不过具体安装还要依据提供的官方文档要求。安装成功后就可以在Python项目中导入并使用相关模块与功能。 - 导入SDK并进行操作:在Python脚本或者交互式环境(如Jupyter Notebook)中,导入Firecrawl的Python SDK相关模块。例如,如果是常规的模块导入方式,可以使用
import firecrawl
语句(这里假设安装后就是直接以firecrawl
包名导入,如果实际情况有差异,需要依据官方文档)。然后利用SDK提供的函数来执行相关操作,如按照指定的配置和要求进行网站的爬取或者数据的提取任务。例如可以通过定义提取模式等,来实现从特定URL或者整个网站提取结构化数据的操作。
三、使用Node.js SDK操作
- 安装Firecrawl Node.js SDK:要安装Firecrawl Node.js SDK,可以使用
npm
工具,如npm install -g firecrawl
命令进行全局安装(如果想在特定项目中安装而不是全局安装,则去掉 -g 参数)。这一步将从firecrawl.dev
获取SDK包并安装到本地的Node.js 环境中,这样就可以在Node.js 项目中使用相关的功能了。 - 设置API密钥环境变量或作为参数传递:从
firecrawl.dev
获取API密钥,有两种使用方式。其一将API密钥设置为名为FIRECRAWL_API_KEY
的环境变量;其二可以把API密钥作为参数传递给FirecrawlApp类等相关的操作类或者函数,依据官方文档和具体的SDK使用规范来确定在不同场景下如何传递使用API密钥。 - 调用SDK方法进行操作:在Node.js 项目脚本中,可以调用Firecrawl Node.js SDK提供的方法进行操作。如果是要带错误处理爬取单个URL,则可以使用
scrapeUrl
方法,它接受URL作为参数,并返回作为字典的爬取数据;如果要带错误处理爬取网站,则可以使用crawlUrl
方法,它接受起始URL和可选参数作为参 数,例如方便地进行如设置爬取深度等操作,进而执行整个网站或者部分页面内容的爬取操作。
四、在Langchain中使用
- 确定运行模式:在Langchain中使用的时候,可以选择
crawl
模式或者其他模式(如果有提供)。如果选择crawl
模式,可用于抓取网站和所有可访问的子页面,并将每个子页面以Markdown格式返回;如果是在LangchainJS中使用,还有默认设置如FIRECRAWL_API_KEY
环境变量相关的操作,如果打算更改运行模式,可以为scrape
用于单个URL的爬取或者crawl
用于所有可访问子页面的抓取等。 - 依据文档和需求配置使用:根据官方提供的
APIdocumentation
(例如访问