为您的人工智能应用程序提供来自任何网站的干净数据。具有先进的抓取、爬行和数据提取功能。
该存储库正在开发中,我们仍在将自定义模块集成到单声道存储库中。它尚未完全准备好自托管部署,但您可以在本地运行它。
Firecrawl 是一项 API 服务,它获取 URL、对其进行爬网并将其转换为干净的 Markdown 或结构化数据。我们会抓取所有可访问的子页面,并为每个页面提供干净的数据。无需站点地图。查看我们的文档。
太平洋标准时间。嘿,你,加入我们的观星者吧:)
我们通过托管版本提供易于使用的 API。您可以在这里找到游乐场和文档。如果您愿意,您还可以自行托管后端。
查看以下资源以开始使用:
API :文档
SDK :Python、Node、Go、Rust
LLM 框架:Langchain (python)、Langchain (js)、Llama Index、Crew.ai、Composio、PraisonAI、Superinterface、Vectorize
低代码框架:Dify、Langflow、Flowise AI、Cargo、Pipedream
其他:Zapier、Pabbly Connect
想要 SDK 或集成吗?通过打开问题让我们知道。
要在本地运行,请参阅此处的指南。
要使用 API,您需要在 Firecrawl 上注册并获取 API 密钥。
Scrape :抓取 URL 并以 LLM 就绪格式获取其内容(markdown、通过 LLM Extract 的结构化数据、屏幕截图、html)
抓取:抓取网页的所有 URL 并以 LLM 就绪格式返回内容
地图:输入一个网站并获取所有网站网址 - 速度极快
LLM 就绪格式:markdown、结构化数据、屏幕截图、HTML、链接、元数据
难点:代理、反机器人机制、动态内容(js 渲染)、输出解析、编排
可定制性:排除标签,使用自定义标头在身份验证墙后爬行,最大爬行深度等...
媒体解析:pdf、docx、图像。
可靠性第一:旨在获取您需要的数据 - 无论有多困难。
操作:在提取数据之前单击、滚动、输入、等待等
批处理(新) :使用新的异步端点同时抓取数千个 URL
您可以在我们的文档中找到 Firecrawl 的所有功能以及如何使用它们
用于抓取 URL 和所有可访问的子页面。这将提交爬网作业并返回作业 ID 以检查爬网的状态。
卷曲-X POST https://api.firecrawl.dev/v1/crawl -H '内容类型:application/json' -H '授权:承载 fc-YOUR_API_KEY' -d '{ "url": "https://docs.firecrawl.dev", "limit": 100, "scrapeOptions": { "formats": ["markdown", "html"] } }'
返回爬网作业 ID 和用于检查爬网状态的 url。
{“成功”:true,“id”:“123-456-789”,“url”:“https://api.firecrawl.dev/v1/crawl/123-456-789”}
用于检查爬网作业的状态并获取其结果。
卷曲-X GET https://api.firecrawl.dev/v1/crawl/123-456-789 -H '内容类型:application/json' -H '授权:持有者 YOUR_API_KEY'
{“状态”:“已完成”,“总计”:36,“已使用的积分”:36,“expiresAt”:“2024-00-00T00:00:00.000Z”,“数据”:[ { "markdown": "[Firecrawl 文档主页![浅色徽标](https://mintlify.s3-us-west-1.amazonaws.com/firecrawl/logo/light.svg)!...", " html": ".. .", "metadata": {"title": "使用 Groq Llama 3 构建“与网站聊天”| Firecrawl","language": "en","sourceURL": "https://docs.firecrawl.dev /learn/rag-llama3","description": "了解如何使用 Firecrawl、Groq Llama 3 和 Langchain 构建“与您的网站聊天”机器人。","ogLocaleAlternate": [],"statusCode": 200 } } ] }
用于抓取 URL 并获取指定格式的内容。
卷曲-X POST https://api.firecrawl.dev/v1/scrape -H '内容类型:application/json' -H '授权:持有者 YOUR_API_KEY' -d '{ "url": "https://docs.firecrawl.dev", "formats" : ["markdown", "html"] }'
回复:
{ "success": true, "data": {"markdown": "第一周发布了![查看我们的第 2 天发布](https://www.firecrawl.dev/blog/launch-week-i-day -2-doubled-rate-limits)[? 免费使用 2 个月...","html": "地图(阿尔法)
用于映射 URL 并获取网站的 url。这将返回网站上存在的大多数链接。
卷曲-X POST https://api.firecrawl.dev/v1/map -H '内容类型:application/json' -H '授权:持有者 YOUR_API_KEY' -d '{ "url": "https://firecrawl.dev" }'回复:
{“状态”:“成功”,“链接”:[“https://firecrawl.dev”,“https://www.firecrawl.dev/pricing”,“https://www.firecrawl.dev/blog” ","https://www.firecrawl.dev/playground","https://www.firecrawl.dev/smart-crawl", ] }带搜索功能的地图
带有
search
参数的地图允许您搜索网站内的特定网址。卷曲-X POST https://api.firecrawl.dev/v1/map -H '内容类型:application/json' -H '授权:持有者 YOUR_API_KEY' -d '{ "url": "https://firecrawl.dev", "search": "docs" }'响应将是从最相关到最不相关的有序列表。
{“状态”:“成功”,“链接”:[“https://docs.firecrawl.dev”,“https://docs.firecrawl.dev/sdks/python”,“https://docs.firecrawl” .dev/learn/rag-llama3", ] }法学硕士提取(测试版)
用于从抓取的页面中提取结构化数据。
卷曲-X POST https://api.firecrawl.dev/v1/scrape -H '内容类型:application/json' -H '授权:持有者 YOUR_API_KEY' -d '{“url”:“https://www.mendable.ai/”,“格式”:[“提取”],“提取”:{“模式”:{“类型”:“对象”,“属性": { "company_mission": { "type": "string" }, "supports_sso": { "type": "boolean" }, "is_open_source": { "type": "boolean" }, "is_in_yc": { "type": "boolean" } }, "required": [ "company_mission", "supports_sso", "is_open_source", "is_in_yc" ] } } }'{ "success": true, "data": {"content": "原始内容","metadata": { "title": "Mendable", "description": "Mendable 让您可以轻松构建 AI 聊天应用程序。 ,自定义,然后用一行代码部署到您想要的任何地方。由 SideGuide 提供", "robots": "follow, index", "ogTitle": "Mendable", "ogDescription": "Mendable 让您轻松构建。摄取、自定义,然后通过 SideGuide 为您提供的任何位置进行部署。", "ogUrl": "https://mendable.ai/", "ogImage": "https:// mendable.ai/mendable_new_og1.png", "ogLocaleAlternate": [], "ogSiteName": "Mendable", "sourceURL": "https://mendable.ai/"},"llm_extraction": { "company_mission": "在您的技术资源上训练安全的人工智能,回答客户和员工的问题,这样您的团队就不必这样做", "supports_sso": true, "is_open_source": false, "is_in_yc": true} } }不使用模式进行提取(新)
现在,您只需将
prompt
传递到端点即可在没有架构的情况下进行提取。 llm 选择数据的结构。卷曲-X POST https://api.firecrawl.dev/v1/scrape -H '内容类型:application/json' -H '授权:持有者 YOUR_API_KEY' -d '{ "url": "https://docs.firecrawl.dev/", "formats": ["extract"], "extract": { "prompt": "从页面中提取公司使命。" } }'使用操作与页面交互(仅限云)
Firecrawl 允许您在抓取网页内容之前在网页上执行各种操作。这对于与动态内容交互、浏览页面或访问需要用户交互的内容特别有用。
下面是如何使用操作导航到 google.com、搜索 Firecrawl、单击第一个结果并截取屏幕截图的示例。
卷曲-X POST https://api.firecrawl.dev/v1/scrape -H '内容类型:application/json' -H '授权:持有者 YOUR_API_KEY' -d '{ "url": "google.com", "formats": ["markdown"], "actions": [ {"type": "wait", "milliseconds": 2000}, {"type": "click", "selector": "textarea[title="Search"]"}, {"type": "wait", "milliseconds": 2000}, {"type": "write", "text": " firecrawl"}, {"type": "等待", "毫秒": 2000}, {"type": "按", "key": "ENTER"}, {"type": "等待", "毫秒" : 3000}, {"type": "click", "selector": "h3"}, {"type": "wait", "milliseconds": 3000}, {"type": "screenshot"} ] }'批量抓取多个 URL(新)
您现在可以同时批量抓取多个 URL。它与 /crawl 端点的工作方式非常相似。它提交批量抓取作业并返回作业 ID 以检查批量抓取的状态。
卷曲-X POST https://api.firecrawl.dev/v1/batch/scrape -H '内容类型:application/json' -H '授权:持有者 YOUR_API_KEY' -d '{“urls”:[“https://docs.firecrawl.dev”,“https://docs.firecrawl.dev/sdks/overview”],“格式”:[“markdown”,“html” ] }'搜索 (v0)(测试版)
用于搜索网络,获取最相关的结果,抓取每个页面并返回 markdown。
卷曲-X POST https://api.firecrawl.dev/v0/search -H '内容类型:application/json' -H '授权:持有者 YOUR_API_KEY' -d '{ "query": "firecrawl", "pageOptions": { "fetchPageContent": true // false 对于快速 serp api } }'{“成功”:true,“数据”:[ { "url": "https://mendable.ai", "markdown": "# Markdown 内容", "provider": "web-scraper", "metadata": {"title": "Mendable | AI for CX和销售","description": "AI for CX and Sales","language": null,"sourceURL": "https://www.mendable.ai/" } } ] }使用Python SDK
安装Python SDK
pip 安装 firecrawl-py抓取网站
from firecrawl.firecrawl import FirecrawlAppapp = FirecrawlApp(api_key="fc-YOUR_API_KEY")# 抓取网站:scrape_status = app.scrape_url( 'https://firecrawl.dev', params={'formats': ['markdown', 'html']} )print(scrape_status)# 抓取网站:crawl_status = app.crawl_url( 'https://firecrawl.dev', params={'limit': 100, 'scrapeOptions': {'formats': ['markdown', 'html']} }, poll_interval=30)打印(crawl_status)从 URL 中提取结构化数据
通过 LLM 提取,您可以轻松地从任何 URL 提取结构化数据。我们支持 pydantic 模式,让您也更轻松。以下是如何使用它:
from firecrawl.firecrawl import FirecrawlAppapp = FirecrawlApp(api_key="fc-YOUR_API_KEY")class ArticleSchema(BaseModel):title: strpoints: intby: strcommentsURL: strclass TopArticlesSchema(BaseModel):top: List[ArticleSchema] = Field(..., max_items=5, description="前 5 个故事")data = app.scrape_url('https://news.ycombinator.com', {'formats': ['extract'],'extract': {'schema':热门文章Schema.model_json_schema() } })打印(数据[“提取”])使用节点 SDK
安装
要安装Firecrawl Node SDK,您可以使用npm:
npm 安装@mendable/firecrawl-js用法
从 firecrawl.dev 获取 API 密钥
将 API 密钥设置为名为
FIRECRAWL_API_KEY
的环境变量,或将其作为参数传递给FirecrawlApp
类。import FirecrawlApp, { CrawlParams, CrawlStatusResponse } from '@mendable/firecrawl-js';const app = new FirecrawlApp({apiKey: "fc-YOUR_API_KEY"});// 抓取网站 const scrapeResponse = wait app.scrapeUrl('https: //firecrawl.dev', { 格式:['markdown', 'html'],});if (scrapeResponse) { console.log(scrapeResponse)}// 爬取网站constcrawlResponse=awaitapp.crawlUrl('https://firecrawl.dev', { 限制:100, scrapeOptions: {格式: ['markdown', 'html'], }} 满足 CrawlParams, true, 30) 满足 CrawlStatusResponse;if (crawlResponse) { 控制台.log(crawlResponse)}从 URL 中提取结构化数据
通过 LLM 提取,您可以轻松地从任何 URL 提取结构化数据。我们支持 zod 模式,让您也更轻松。以下是如何使用它:
从“@mendable/firecrawl-js”导入 FirecrawlApp;从“zod”导入 { z };const app = new FirecrawlApp({ apiKey: "fc-YOUR_API_KEY"});// 定义 schema 以将内容提取到 const schema = z.object({ 顶部: z.array( z.object({title: z.string(),points: z.number(),by: z.string(),commentsURL: z.string(), })).length(5 ).describe("黑客新闻的前 5 个故事"),});const scrapeResult = wait app.scrapeUrl("https://news.ycombinator.com", { extractorOptions: { extractSchema: schema },});console.log(scrapeResult.data["llm_extraction"]);开源与云产品
Firecrawl 是在 AGPL-3.0 许可证下开源的。
为了提供最好的产品,我们除了提供开源产品外,还提供 Firecrawl 的托管版本。云解决方案使我们能够不断创新并为所有用户提供高质量、可持续的服务。
Firecrawl Cloud 可在 firecrawl.dev 上获取,并提供一系列开源版本中不提供的功能:
贡献
我们热爱贡献!请在提交拉取请求之前阅读我们的贡献指南。如果您想自行托管,请参阅自助托管指南。
最终用户有责任在使用 Firecrawl 进行抓取、搜索和爬行时遵守网站政策。建议用户在开始任何抓取活动之前遵守适用的隐私政策和网站使用条款。默认情况下,Firecrawl 在抓取时遵循网站 robots.txt 文件中指定的指令。使用 Firecrawl 即表示您明确同意遵守这些条件。
贡献者
许可免责声明
该项目主要根据 GNU Affero 通用公共许可证 v3.0 (AGPL-3.0) 获得许可,如该存储库根目录中的 LICENSE 文件中所指定。然而,该项目的某些组件是根据 MIT 许可证获得许可的。有关详细信息,请参阅这些特定目录中的 LICENSE 文件。
请注意:
除非另有说明,AGPL-3.0 许可证适用于项目的所有部分。
SDK 和一些 UI 组件已根据 MIT 许可证获得许可。有关详细信息,请参阅这些特定目录中的 LICENSE 文件。
使用或贡献此项目时,请确保遵守您正在使用的特定组件的适当许可条款。
有关特定组件许可的更多详细信息,请参阅相应目录中的 LICENSE 文件或联系项目维护人员。
↑ 返回顶部 ↑