混合抓取流水线
先尝试轻量级的静态 HTTP 抓取,仅在页面看起来是动态页面或受保护时才回退到无头浏览器。这样既能让简单页面保持快速,又不会放弃对 JavaScript 密集型网站的支持。
LightCrawl 是一款可自托管的 Web 抓取 API 和 MCP server,可将网页转换为 Markdown。适合开发者与 AI 工作流,提供轻量、容器化的抓取、爬取和页面映射方案。
LightCrawl 是一款轻量、单容器、可自托管的 Web 抓取 API 和 Model Context Protocol(MCP)server。它可将网页转换为干净的 Markdown,并在仓库中被定位为 Firecrawl 的一个最小化、低成本替代方案,适用于本地开发和低资源环境。
该项目旨在同时处理简单页面和更难抓取的目标。它会先进行静态抓取,在检测到需要 JavaScript 渲染或存在反爬保护时回退到 Playwright,然后通过 HTTP API 或 MCP 接口返回结果。README 还描述了面向文章的提取、整页转换、爬取、站点映射、基于 Redis 的分布式队列,以及可选的基于 Brave Search 的搜索工具。
该仓库将此服务定位为面向开发者和 AI agent 工作流的自托管工具,适合获取已清洗的网页内容,而不是原始浏览器访问。其文档强调容器化隔离、Markdown 输出,以及通过环境变量进行配置,例如 `PORT`、`API_KEY`、`ALLOWED_IPS`、`REDIS_URL` 和 `MAX_CONCURRENCY`。
先尝试轻量级的静态 HTTP 抓取,仅在页面看起来是动态页面或受保护时才回退到无头浏览器。这样既能让简单页面保持快速,又不会放弃对 JavaScript 密集型网站的支持。
提供 `article` 和 `full` 两种提取模式。`article` 使用 Mozilla Readability 提取主要内容,而 `full` 会将整个 HTML body 转换为 Markdown。
支持 `fast=true`,可跳过较长的浏览器等待路径,改用更轻量的 DOM 解析器。README 将此模式定位于更低的 CPU 和内存占用。
同时作为 Express HTTP API 和通过 stdio 运行的 MCP server。仓库还提到了用于端点文档和测试的 Swagger UI。
可递归抓取网站,并能映射已注册域名中的内部 URL。它同时支持内存队列和基于 Redis 的分布式爬取。
使用带隐身工具的 Playwright、原生兼容 Prometheus 的指标和结构化 JSON 日志。Docker 镜像只安装 Chromium,以尽量减小容器体积。
当你希望将网页标准化为 Markdown 供后续处理,而不是在自己的应用中打开浏览器时,可以将其作为本地或服务端抓取层来运行。
当目标是博客文章、新闻报道或文档页面,且主要内容比导航或布局更重要时,可使用 article 模式。
当你需要保留整个页面正文时,例如门户、目录列表或搜索结果页面,可使用 full 模式。
当你需要发现同一已注册域名中的相关页面,并在深度和数量限制内递归处理站点时,可使用 crawl 和 map 端点。
当你需要共享爬取队列、后台 worker,或需要始终运行在自有基础设施内的自托管服务时,可结合可选 Redis 以 Docker 方式部署。
LightCrawl 是一款可自托管的 Web 抓取 API 和 MCP server,可将网页转换为 Markdown。它还提供 HTTP 端点和 Swagger UI,用于 API 文档和端点测试。
README 列出了 HTTP API 和 MCP 的用法,Dockerfile 显示其部署为基于 Playwright 且已安装 Chromium 的容器。该项目设计为单容器运行,并可通过 PORT、API_KEY 和 REDIS_URL 等环境变量进行配置。
README 描述了两种提取模式:`article` 使用 Mozilla Readability 聚焦于主要内容,`full` 则将整个 HTML body 转换为 Markdown。它还提供 `fast=true` 模式,以降低浏览器和解析器开销。
该项目先进行轻量级静态抓取,然后在检测到 JavaScript 渲染或反爬保护时回退到 Playwright。它还提供网站映射、递归爬取、基于 Redis 的分布式爬取,以及可选的基于 Brave Search 的搜索工具。
仓库和更新日志表明该项目是开源且可自托管的,README 中也提到了以最低成本托管为目标。GitHub 的定价页面还显示仓库有免费层级,而项目本身并未公布自己的定价。