ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

如何用 Docker Compose 10 分钟自托管 Firecrawl 网页抓取 API:完整教程

如何用 Docker Compose 10 分钟自托管 Firecrawl 网页抓取 API:完整教程 如何用 Docker Compose 10 分钟自托管 Firecrawl 网页抓取 API完整教程【免费下载链接】firecrawl Supercharge your AI agents with data from the web and beyond. A web data API to search, scrape, and access more sources.项目地址: https://gitcode.com/GitHub_Trending/fi/firecrawl大量页面抓取、数据要留在自己机器上却还要请求第三方服务是很多人的痛点。Firecrawl 是开源网页抓取 API你提交一个 URL它返回干净的 Markdown 或结构化 JSON。照本教程操作用 Docker Compose 自托管 Firecrawl 全程 10 分钟并完成第一次抓取。开始之前动手前逐条确认全部打勾再往下走已安装 Docker 与 Compose 插件docker compose version能打印出版本号。机器可用内存不低于 4GB、磁盘剩余不低于 20GB首次构建 5 个镜像体积不小。宿主机 3002 端口未被占用curl -s http://localhost:3002/无响应或连接拒绝即为空闲。网络可拉取 Docker 基础镜像若走代理或镜像源先配置好再开始。使用 Linux/macOS 时终端有管理员权限。任何一条不满足先解决再继续后面的报错大多源自这里。主流程 克隆代码仓库git clone https://gitcode.com/GitHub_Trending/fi/firecrawl cd firecrawl看到什么算成功目录下能直接看到 docker-compose.yaml 和 SELF_HOST.md 两个文件。启动整套服务docker compose up -d首次会构建 API、Playwright 服务、队列数据库等镜像耗时 10~30 分钟。看到什么算成功执行docker compose psapi与各 worker 均为 running/healthy。卡在建镜像阶段不动直接查文末「出问题了」表格。验证 API 入口curl -s http://localhost:3002/看到什么算成功返回包含message: Firecrawl API的 JSON说明网关已通。发出第一次抓取curl -s http://localhost:3002/v1/scrape \ -H Content-Type: application/json \ -d {url:https://example.com,formats:[markdown]}看到什么算成功响应success为truedata.markdown里有完整正文。更多请求形态可参考仓库里的 apps/api/requests/v2/scrape.requests.http。图里重点看右侧 200 响应markdown、links、screenshot 等字段就是自托管实例实际会吐出的结构。用 map 端点收尾验证curl -s http://localhost:3002/v1/map \ -H Content-Type: application/json \ -d {url:https://example.com,limit:2}看到什么算成功返回 2 条站点 URL 的列表。到此Firecrawl 自托管部署完成。参数速查以下值与根目录 Compose 文件默认值一致改参数只需在根目录建.env覆盖同名变量参数推荐值为什么是这个值PORT3002默认唯一对外发布的端口改它不影响内部通信USE_DB_AUTHENTICATIONfalse首次自托管保持默认开启前需先备好数据库鉴权结构NUM_WORKERS_PER_QUEUE8每个队列的并行 worker 数队列消费速度的上限CRAWL_CONCURRENT_REQUESTS10一次 crawl 同时抓取的 URL 数太高内存先爆MAX_CONCURRENT_JOBS5同时执行的大任务数防止多任务互抢浏览器BROWSER_POOL_SIZE5Playwright 浏览器实例池大小直接决定内存占用NUQ_BACKEND留空pg队列跑在自带的 PostgreSQL 上多机再考虑切换三种常见场景只改这几个数2 核 4GB 轻机NUM_WORKERS_PER_QUEUE 改 4CRAWL_CONCURRENT_REQUESTS 改 4BROWSER_POOL_SIZE 改 2MAX_CONCURRENT_JOBS 改 2。对外公网暴露只加两件事——按 SELF_HOST.md 配齐鉴权并把 USE_DB_AUTHENTICATION 设为 true再加一层 TLS 终结默认 API 无认证不能裸奔。批量抓取压测CRAWL_CONCURRENT_REQUESTS 提到 20、BROWSER_POOL_SIZE 提到 10跑一轮看内存曲线稳了再往上加。为什么这么配并发参数是联动的worker 数、URL 并发、浏览器池都吃内存单抬一个只会让另两个排队。队列默认走自带 PostgreSQL任务状态与抓取结果同源多节点扩展才需要 FoundationDB。默认只暴露 API 一个端口其余服务留在内部网络暴露面最小。出问题了 ️排查前先跑docker compose ps和docker compose logs 服务名资源水位可以参考仓库里的监控图表图里重点看尖峰出现时利用率是否长期贴着 100%那就是并发参数超标的信号。现象原因处理3002 端口连不上端口被占用或未启动换宿主机 PORT 为 3003内部端口保持 3002 不变构建拉镜像失败基础镜像源网络不通配置 Docker 镜像加速器后重新docker compose up -d根路径正常但 /v1/scrape 502 或超时Playwright 服务未就绪或页面过重先抓静态页验证链路再看docker compose logs playwright-servicecrawl 一直排队不完成NuQ PostgreSQL 不健康docker compose ps nuq-postgres确认 healthy异常则看其日志内存超 4GB 触发 OOM浏览器池或并发过大BROWSER_POOL_SIZE 降到 2~3CRAWL_CONCURRENT_REQUESTS 降到 4部分页面抓取失败目标站点限流反爬降低并发、请求间加重试再评估是否配 PROXY_SERVER收尾自查curl http://localhost:3002/返回 Firecrawl API 的 JSON第一次 scrape 拿到了完整 markdown 正文docker compose ps全部服务 running日志无持续报错记录了你当前使用的并发参数作为后续调优的基线如需对外暴露已按 SELF_HOST.md 完成鉴权与 TLS跑通之后可以往两个方向走用 cron 表达式把抓取排成定期任务配合 apps/api/requests/v2/crawl.requests.http 里的请求样例做定时 crawl图里重点看五个星号的位置分、时、日、月、周定时抓取任务就靠它描述。正式上多节点或集群时参考仓库内 examples/kubernetes/cluster-install/ 的清单与 examples/kubernetes/firecrawl-helm/ 的 Helm 图。【免费下载链接】firecrawl Supercharge your AI agents with data from the web and beyond. A web data API to search, scrape, and access more sources.项目地址: https://gitcode.com/GitHub_Trending/fi/firecrawl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表