新闻详情

新闻详情

首页 / 资讯中心 / 详情

Maxun 开源无代码网页数据平台完全指南:从网站到结构化 API 的实战手册

发布时间:2026/9/13 9:44:59来源:尧图网络
Maxun 开源无代码网页数据平台完全指南:从网站到结构化 API 的实战手册
Maxun 开源无代码网页数据平台完全指南从网站到结构化 API 的实战手册【免费下载链接】maxun The open-source no-code platform for web scraping, crawling, search and AI data extraction • Turn websites into structured APIs in minutes 项目地址: https://gitcode.com/GitHub_Trending/ma/maxunMaxun 是一款开源的、无代码的网页数据平台其核心理念是把任意网站变成结构化 APITurn Any Website Into A Structured API。本指南以仓库根目录 README.md 为主体结合仓库内docker-compose.yml、ENVEXAMPLE、docs/self-hosting-docker.md 以及maxun-core核心源码系统讲解 Maxun 的四类机器人Extract / Scrape / Crawl / Search、底层工作流执行引擎、快速安装、环境变量配置与生产级自托管方案帮助你快速上手并深入理解其实现原理。一、Maxun 是什么根据 README.md 的定义Maxun 是一个开源的、无代码的网页数据平台web data platform用于把网页转化为结构化、可靠的数据。它支持Extraction提取模拟真实用户行为从任意网站采集结构化数据Crawling爬行按可控范围与发现策略爬取整个网站Scraping抓取将完整网页转换为干净的 Markdown / HTML 并支持截图Search搜索运行自动化网页搜索支持基于时间的过滤。平台设计上从简单用例一路扩展到复杂的自动化工作流且支持自托管与二次开发。仓库根目录 package.json 显示其依赖栈覆盖了 Playwright浏览器自动化playwright-core1.57.0、SequelizeORM、Socket.IO、Graphile Worker后台任务、MinIO对象存储、Express后端 API等是一个完整的前后端 浏览器编排 任务调度系统。从仓库结构看项目按 frontendsrc/— backendserver/src/— coremaxun-core/src/ 三层组织前端负责录制、编排与展示后端负责机器人管理、调度与 API而maxun-core是独立的核心解释器负责真正在浏览器上执行工作流。二、生态系统全景七大能力模块README 将 Maxun 的能力划分为七大模块涵盖从无代码采集到开发者编程的完整链路模块能力说明Extract提取模拟真实用户行为从任意网站采集结构化数据Scrape抓取把完整网页转换为干净的 Markdown / HTML并支持截图Crawl爬行爬取整个网站从每个相关页面提取内容对范围与发现策略有完全控制Search搜索运行自动化网页搜索来发现或抓取结果支持基于时间的过滤Document Extraction Parsing文档提取与解析从 PDF、CSV、XLSX、DOCX 文档中提取并解析结构化数据SDK面向开发者的完整工具包用于抓取、提取、调度和端到端数据自动化CLI在终端中创建机器人、触发运行、取回已提取的数据其中 Extract 模块又细分为两种模式Recorder Mode录制模式你一边浏览一边录制操作Maxun 会把你的操作自动转成一个可复用的提取机器人AI ModeAI 模式用自然语言描述你想要的数据由 LLM 驱动的提取完成其余工作。三、工作原理四类机器人Maxun 的机器人Robot是自动化的数据采集工具——你可以把它们理解为个人的网页助手能够导航网站、提取信息、整理数据就像你手动操作一样但更快、更高效。根据 README.md 的说明有四类机器人各自承担不同的任务Extract模拟真实用户行为并捕获结构化数据。官方示例场景包括从 Airbnb 提取 10 条房源列表、从 IMDb 提取 Top 50 电影的名称/评分/时长——前者适合 Recorder Mode录制翻页、点击、筛选等真实交互后者适合 AI Mode一句话描述提取目标LLM 推断字段与选择器。Scrape把完整网页转换成干净的 Markdown、HTML并能捕获截图特别适合 AI 工作流、Agent 和文档处理场景。Crawl爬取整个网站从每个相关页面提取内容对抓取范围与链接发现有完全控制。Search运行自动化网页搜索来发现或抓取结果支持基于时间的过滤。这四类机器人共享同一个底层执行引擎差异主要体现在工作流的动作what与输出格式上。四、底层原理maxun-core 工作流引擎深度解析maxun-core是仓库中独立的核心包maxun-core/README.md它是智能工作流Smart Workflows的执行器。理解它就理解了 Maxun 四类机器人背后的统一模型。4.1 统一模型Where-What 二元组在 maxun-core/src/types/workflow.ts 中工作流被定义为WhereWhatPair的数组export interface WhereWhatPair { id?: string where: Where what: What[] } export type Workflow WhereWhatPair[];where条件描述在什么状态下执行包括 url、cookies、selectorsCSS / Playwright 选择器以及若干逻辑/元运算符what动作描述执行什么action既可以是 PlaywrightPage对象的任意方法名也可以是平台自定义动作export type CustomFunctions | scrape | scrapeSchema | scroll | screenshot | script | enqueueLinks | flag | scrapeList | scrapeListAuto | crawl | search; export type What { action: MethodNamesPage | CustomFunctions, args?: any[], name?: string, actionId?: string };换句话说一个 Maxun 机器人本质上是一串当页面满足条件 X 时就执行动作 Y的声明式规则这正是 Recorder Mode 录制结果与 AI Mode 生成结果的统一载体。4.2 条件与逻辑运算符where条件的求值逻辑定义在 maxun-core/src/types/logic.tsexport const unaryOperators [$not] as const; export const naryOperators [$and, $or] as const; export const meta [$before, $after] as const;$and/$or任意元数的逻辑组合$not一元取反$before/$after基于已执行动作的时序元条件例如仅在某动作执行之后才生效基础条件url/cookies/selectors支持字符串精确匹配也支持{ $regex: ... }正则表达式形式selectors除外因为选择器有自己的解析逻辑见 maxun-core/src/types/workflow.ts 中的类型注释。在 maxun-core/src/interpret.ts 的applicable()方法中可以看到完整的求值语义对每个where键若属于运算符则递归组合求值若属于 meta 运算符则结合已使用动作列表判断否则走inclusive()子集包含判定——支持严格相等、正则测试与嵌套对象递归包含。其中selectors数组采用部分命中即通过value.some(...)的宽松策略这保证了页面结构轻微变化时机器人仍能继续运行。4.3 输出格式Output Formatswhere/what决定如何采输出格式则决定采成什么样。定义在 maxun-core/src/types/formats.tsexport const OUTPUT_FORMAT_OPTIONS [ markdown, html, text, links, summary, screenshot-visible, screenshot-fullpage, ] as const;其中HEAVY_RENDER_FORMATSmarkdown、html、text、summary、screenshot-visible、screenshot-fullpage需要浏览器完整渲染页面而links属于轻量提取不需要渲染。解释器会据此决定导航等待策略需要完整渲染时用networkidle纯 DOM 操作时用domcontentloaded以获得最大速度见 maxun-core/src/interpret.ts 的getNavigationWaitStrategy()。这解释了 Scrape 机器人面向 AI/Agent 输出干净 Markdown的能力来源——正是 README 中 LLM-Ready Data 特性的实现基础。4.4 工作流校验与预处理工作流在执行前必须通过校验。maxun-core/src/preprocessor.ts 用 Joi 定义了严格的 schemawhere必须合法url 需为 URI 或$regex对象支持递归的$and/$or/$notwhat必须有action字段此外Preprocessor.initWorkflow()支持$param参数占位符与$regex初始化——即机器人可以参数化运行例如每次运行时注入不同的搜索关键词参数集合不匹配时会直接抛出错误。从源码结构可以推断Recorder Mode 录制出的操作、AI Mode 生成的提取方案最终都会被归一化成这样的WorkflowFile含可选meta元数据如name、desc再由Interpreter类加载执行。4.5 浏览器端采集脚本what中的自定义动作scrape、scrapeSchema、scrapeList等最终会调用注入到页面中的浏览器端函数定义在 maxun-core/src/browserSide/scraper.js。该脚本包含若干值得关注的能力结构化选择器生成GetSelectorStructural()从 DOM 树位置生成 CSS 选择器不保证唯一但适合批量匹配同类元素可抓取项启发式scrapableHeuristics()通过网格取点、面积统计与尺寸偏差度量自动发现页面上有趣的候选集合如电商商品、机票、列表项列表抓取scrapeList/scrapeListAuto支持配置列表容器选择器、字段映射、数量上限与分页配置。这些脚本与Interpreter中carryOutSteps()maxun-core/src/interpret.ts的实现一一对应构成了无代码录制 → 声明式工作流 → 浏览器执行的完整闭环。五、快速开始Quick Start5.1 最省事的方式使用托管版本README 明确指出最快上手的方式是直接使用官方托管的在线版本https://app.maxun.dev无需任何安装。5.2 通过 Docker Compose 本地安装仓库根目录提供了开箱即用的 docker-compose.yml它定义了五个服务服务镜像职责postgrespostgres:13主数据库机器人、运行记录等miniominio/minioS3 兼容对象存储截图、文档、文件backendgetmaxun/maxun-backend:latest后端 API 与任务调度frontendgetmaxun/maxun-frontend:latest前端界面browsergetmaxun/maxun-browser:latestPlaywright 浏览器池CDP 连接BROWSER_WS_PORT默认 3001后端容器默认通过env_file: .env读取配置并为 Chromium 注入CHROMIUM_FLAGS: --disable-gpu --no-sandbox --headlessnew设置了shm_size: 2gb、seccompunconfined以规避浏览器沙箱问题。浏览器服务还带有/health健康检查便于编排系统探活。说明当前仓库中docker-compose.yml默认使用latest镜像各服务下方均保留了本地构建的注释配置Dockerfile.backend、Dockerfile.frontend、browser/Dockerfile如需从源码构建可取消注释后docker compose build。5.3 不使用 Docker 的本地安装README 提供了三类安装文档入口Docker Compose 安装、无 Docker 本地安装、环境变量说明。无 Docker 场景下可以直接在仓库根目录执行npm install npm startnpm start会先build:server再并行启动server与client开发模式可改用npm run start:dev见 package.json 的 scripts。5.4 环境变量详解完整的变量清单见 ENVEXAMPLE这里按组说明关键项基础与应用NODE_ENVproduction运行环境可设development或productionJWT_SECRETJWT 签名密钥务必替换为强随机串SESSION_SECRET会话 Cookie 签名密钥自定义可防会话劫持ENCRYPTION_KEY加密敏感数据密码、代理的密钥MAXUN_TELEMETRYtrue遥测开关README/ENVEXAMPLE 建议保持开启以便项目方了解产品使用情况。数据库PostgreSQLDB_NAME/DB_USER/DB_PASSWORD/DB_HOST/DB_PORT库名、用户名、密码、主机Docker 中为postgres、端口默认 5432。对象存储MinIOMINIO_ENDPOINTminio、MINIO_PORT9000、MINIO_CONSOLE_PORT9001MINIO_ACCESS_KEY/MINIO_SECRET_KEY访问凭证MINIO_PUBLIC_URL可选。当 MinIO 位于反向代理之后或非 localhost/非 9000 公共地址时用于让浏览器访问存储的截图/文件例如https://storage.example.com不带内部端口。RedisREDIS_HOST/REDIS_PORT/REDIS_PASSWORDRedis 连接配置密码为可选未设置则免认证连接。前后端地址与端口BACKEND_PORT8080、FRONTEND_PORT5173Docker 场景必需BACKEND_URL、PUBLIC_URLVITE_BACKEND_URL前端连接后端的 URL必须与BACKEND_URL保持一致VITE_PUBLIC_URL后端连接前端的 URL必须与PUBLIC_URL保持一致。可选集成Google OAuthGOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRET/GOOGLE_REDIRECT_URI用于 Google Sheets 集成Airtable OAuthAIRTABLE_CLIENT_ID/AIRTABLE_REDIRECT_URI默认回调http://localhost:8080/auth/airtable/callback。浏览器CDP 连接BROWSER_WS_PORT3001、BROWSER_HEALTH_PORT3002、BROWSER_WS_HOSTbrowser浏览器服务 WebSocket 端口、健康检查端口与主机名。5.5 自托管与升级README 与 docs/self-hosting-docker.md 共同给出了生产级自托管路径。核心要点如下前置条件Web 服务器Apache2、nginx 等、SSL 证书、一个用于托管 Maxun 的子域名如maxun.my.domain、Docker 与 Docker Compose。目录规划建议在专用 Docker 目录如/home/$USER/Docker/maxun下创建db、minio、redis子目录以持久化数据mkdir -p maxun/{db,minio,redis}编写.env按 ENVEXAMPLE 模板填入变量。自托管场景下四个 URL 应统一指向你的域名如BACKEND_URLhttps://maxun.my.domain、PUBLIC_URLhttps://maxun.my.domain、VITE_BACKEND_URL与VITE_PUBLIC_URL同值。文中提示所有随机密钥建议用openssl rand生成强随机值且务必逐个核对变量是否与你的环境匹配如改端口。编写docker-compose.yml自托管文档给出的编排包含postgres:17、redis:7、minio、backend、frontend五个服务并做了生产加固后端端口仅绑定127.0.0.1、限制内存如 backendmem_limit: 4g、browser 2G、设置shm_size: 2gb与seccompunconfined、挂载持久化卷等。启动sudo docker compose up -d等待约 30 秒各服务就绪后通过http://localhost:5173默认前端端口访问。反向代理该自托管方案默认只监听 localhost必须配置反向代理对外提供服务。Nginx 配置示例见 docs/nginx.conf。升级README 提供了两条升级路径——基于 Docker Compose 的升级以及非 Docker Compose 本地环境的升级升级前务必先拉取最新镜像再滚动重建服务。六、核心功能特性综合 README 与仓库实现Maxun 的功能特性可归纳为无代码提取数据纯点选式界面Recorder ModeLLM 驱动的提取自然语言描述目标用 LLM 抓取结构化数据AI Mode开发者 SDK编程式提取、调度与机器人管理自动处理分页与滚动自动导航翻页、滚动加载定时运行机器人配置后自动按计划执行仓库server/src/storage/schedule.ts、schedule-worker.ts提供了调度实现把网站变成 API为任意站点生成 RESTful 端点把网站变成表格直接导出到 Google Sheets 与 Airtable见 server/src/workflow-management/integrations/ 下的gsheet.ts、airtable.ts自适应网站布局变化网站改版后自动恢复宽松选择器匹配 结构选择器启发式是其基础登录后提取无缝处理需要认证的站点工作流where支持 cookie 条件配合getState()对 cookie 的采集集成能力连接常用工具MCP 支持Model Context Protocol 集成根目录 package.json 引用了modelcontextprotocol/sdk并有mcp:build脚本与 server/src/mcp-worker.tsLLM 就绪的数据输出干净 Markdown 供 AI 应用使用可自托管基础设施完全自主可控开源透明且由社区驱动。七、许可与项目价值观本项目基于AGPLv3许可开源LICENSE。README 明确阐述了项目价值观倡导对开源公平且负责任的使用——如果你的商业项目依赖本项目请考虑回馈代码或支持其发展。同时仓库还提供了 CONTRIBUTING.md贡献指南与 SECURITY.md安全说明供进一步查阅。八、典型应用场景小结README 指出Maxun 可用于销售线索生成、市场调研、内容聚合等多种场景。结合上面的讲解一条完整的实践路径是在 Recorder Mode 中录制登录、搜索、翻页与字段点选 → 生成可复用的 Extract 机器人用 AI Mode 描述提取目标如IMDb Top 50 电影的名称、评分、时长→ 获得结构化字段对整站使用 Crawl 或 Search 机器人批量覆盖所有页面配合markdown/html/截图等输出格式喂给 AI 流水线通过 SDK / REST API / CLI 触发运行、拉取数据或配置定时调度 导出到 Google Sheets / Airtable最后通过 Docker Compose Nginx 反向代理自托管实现完全自主可控的生产环境。这套录制无代码 LLM 智能 声明式工作流引擎 完整 DevOps 链路的组合就是 Maxun 把任意网站变成结构化 API 的完整技术答案。【免费下载链接】maxun The open-source no-code platform for web scraping, crawling, search and AI data extraction • Turn websites into structured APIs in minutes 项目地址: https://gitcode.com/GitHub_Trending/ma/maxun创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Refine v5 Mantine BooleanField 组件详解:用图标与 Tooltip 优雅展示布尔值 2026/9/13 12:36:12

Refine v5 Mantine BooleanField 组件详解:用图标与 Tooltip 优雅展示布尔值

Refine v5 Mantine BooleanField 组件详解:用图标与 Tooltip 优雅展示布尔值 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/Git…

阅读更多 →
Air6208 vs ESP32-C3:通信模组与SoC的工业级选型本质差异 2026/9/13 12:36:12

Air6208 vs ESP32-C3:通信模组与SoC的工业级选型本质差异

1. 项目概述:这不是一场参数对比,而是一次通信模组定位的重新校准“对标ESP32-C3?合宙Air6208强在哪儿”——这个标题一出来,很多刚接触物联网硬件的朋友第一反应是打开参数表,拉出主频、RAM、Flash、Wi-Fi协议版本、蓝…

阅读更多 →
Claude Code接入Figma MCP:设计稿转HTML的完整实战指南 2026/9/13 12:36:12

Claude Code接入Figma MCP:设计稿转HTML的完整实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
汽车电子嵌入式系统工程化落地:从ASIL-B设计到HIL测试全链路 2026/9/13 12:36:12

汽车电子嵌入式系统工程化落地:从ASIL-B设计到HIL测试全链路

1. 这不是芯片发布会,而是一套能真正落地的汽车电子嵌入式系统工程方案 “赛普拉斯携先进汽车电子嵌入式系统解决方案”——这句话乍看像一句标准的展会通稿,但如果你在整车厂ECU开发组干过三年以上,或者带过两个以上ADAS域控制器项目&#x…

阅读更多 →
变频器过流故障的五级根因诊断与实操避坑指南 2026/9/13 12:36:12

变频器过流故障的五级根因诊断与实操避坑指南

1. 过流不是“跳闸”那么简单:一线维修师傅最常误判的故障表象变频器过流故障,是工业现场最让人头疼的“老熟人”。它不像电源缺相那样有明确的报警代码,也不像散热风扇停转那样能直接听见异响;它往往在设备正满负荷运行时突然“抽…

阅读更多 →
OpenClaw大型数据转译:从上下文爆满到路径引用的工程实践 2026/9/13 12:33:12

OpenClaw大型数据转译:从上下文爆满到路径引用的工程实践

1. 问题背景:工具返回大型数据为什么会“炸掉”Agent1.1 上下文窗口是Agent的天花板接触过OpenClaw的同学应该都有这种经历:本地部署好了Clawdbot,接了微信或Telegram通道,写了个Skill读日志或者拉数据,结果模型突然开…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞