AigoTools自动收录引擎深度剖析:Playwright、Jina与OpenAI三方协作如何3步搞定网站导航

📅 2026/8/23 11:53:01
AigoTools自动收录引擎深度剖析:Playwright、Jina与OpenAI三方协作如何3步搞定网站导航
AigoTools自动收录引擎深度剖析Playwright、Jina与OpenAI三方协作如何3步搞定网站导航【免费下载链接】aigotoolsAigoTools can help users quickly create and manage website directory, with built-in site auto-crawling features, and also provides internationalization, SEO, image storage, and other functions. It allows users to quickly deploy their own directory site online.项目地址: https://gitcode.com/gh_mirrors/ai/aigotoolsAigoTools是一款 AI 工具导航站搭建框架其核心的自动收录引擎能一键采集网站信息用 Playwright 无头浏览器截图用 Jina Reader 读取网页正文再交给 OpenAI 自动生成摘要、关键词与分类标签——让收录一个站点从繁琐的人工填写变成全自动流水线。收录引擎长什么样先看整体架构AigoTools 由两部分组成导航站主体Next.js 前端 管理后台和独立的收录服务packages/crawler基于 NestJS。收录引擎的核心思想是任务队列 三个采集器并行任务入口后台勾选站点后batchDispatchSiteCrawl把任务批量投递到 Bull 队列底层由 Redis 支撑并把站点状态置为processing消费者SiteConsumer以 10 个并发消费任务每个任务内部再让截图和AI 摘要两条流水线并行执行结果落库摘要、截图、分类、SEO 字段全部写回 MongoDB站点状态变为success。相关代码可以重点看这几个文件消费者主流程packages/crawler/src/site-queue/site-queue.consumer.ts浏览器截图服务packages/crawler/src/providers/browser.service.tsAI 提示词packages/crawler/src/prompts/site-summary.ts、packages/crawler/src/prompts/category-summary.ts第一步Playwright 截图——不只是截个图很多人以为截图就是拍张照AigoTools 的做法更完整。浏览器池管理BrowserService用generic-pool维护了一个 Chromium 浏览器池默认最小 2 个、最大 10 个实例避免每次任务都冷启动浏览器浏览器掉线时会自动销毁重建保证池子健康。一次截图三份产出。页面加载完成后1920×1080 视口超时 30 秒代码同时拿到整页截图PNG 二进制meta[namekeywords]提取出的关键词meta[namedescription]提取出的描述。这三项正好是站点卡片和 SEO 所需的元信息一次浏览器访问全部搞定。图片瘦身与存储截图会经sharp压缩为 800×450 的 WebP顶部裁切然后按配置上传到 MinIO、AWS S3 或腾讯云 COS 三种对象存储之一最后返回可访问的 URL 写入站点的snapshot字段。整个过程还有 10 分钟 Redis 缓存同一 URL 重复收录不会重复截图。第二步Jina Reader 读取——把任意网页变成 Markdown有了截图还差这个网站到底是干什么的。AigoTools 没有自己写 HTML 解析器而是接入Jina Reader请求格式{JINA_READ_BASE}/{站点URL}默认即https://r.jina.ai/xxx请求头带X-Return-Format: markdownJina 会把网页正文清洗成干净的 Markdown可选Authorization携带 Jina API Key 提升速率上限返回的正文同样写入 Redis 缓存 600 秒供下一步 AI 摘要直接复用。这一步的价值在于Jina 屏蔽了 JS 渲染、反爬、排版差异让下游 AI 拿到的永远是结构化良好的纯文本大幅降低了摘要任务的失败率。第三步OpenAI 摘要——一次调用两个任务拿到 Markdown 正文后summarySiteContent会先剔除图片链接然后并发发起两个 OpenAI 任务Promise.all互不阻塞任务一站点结构化摘要SiteSummaryPrompt提示词把模型设定为网站分析专家要求输出可直接解析的 JSON字段包括字段说明name/introduction站点名称与不少于 700 词的推广级介绍users/usecases至少 5 类目标用户、5 个具体使用场景features/keywords功能列表与至少 10 个 SEO 关键词pricingType/pricings计费模式免费/订阅/按量等与价格档位links自动抽取登录、注册、文档、定价页地址searchSuggestWords5 个站内搜索联想词任务二智能分类匹配CategorySummaryPrompt把正文和你后台已有的分类列表一起喂给模型让它从候选分类中匹配出最贴切的 2 个返回{categories: [...]}。这样新收录的站点无需人工选分类自动归入正确的目录。两个任务返回后代码会剥掉 Markdown 代码块标记、JSON.parse校验再把字段合并回站点文档——分类名还会被转换为分类 ID 落库。三条流水线如何协作一张时序图看懂一个crawlSite任务的完整生命周期投递队列(attempts:3, 间隔10s重试) │ ▼ 取出站点 ──► ┌─ 并行 ─┬─► Playwright 截图 meta 提取 ─► 压缩 WebP ─► 上传对象存储 │ └─► Jina 读取 Markdown ─► OpenAI 双任务(摘要分类) │ ▼ 合并结果snapshot / name / description / features categories / keywords / pricingType / links ... │ ▼ 状态 pending → processing → success(失败重试3次后置 fail)几个值得学习的工程细节全程可中断每步之后都会assertJobActive检查任务是否还活着用户点停止后正在跑的任务会尽快退出不浪费算力失败兜底任务 3 次尝试都失败才会把站点标为fail且finally块保证无论如何都会保存当前进度双层缓存截图与正文各自 10 分钟 Redis 缓存重复收录同一站点几乎零成本。如何快速体验 AigoTools 自动收录想跑起来试试只需准备 MongoDB、Redis、OpenAI Key 和 Jina Key然后git clone https://gitcode.com/gh_mirrors/ai/aigotools cd aigotools cp packages/aigotools/.env packages/aigotools/.env.prod cp packages/crawler/.env packages/crawler/.env.prod # 填入配置后 docker-compose up -d启动后在后台站点管理页录入站点 URL 并批量触发采集稍等片刻即可看到 AI 生成的截图、介绍、功能点和分类标签——这就是 Playwright、Jina 与 OpenAI 三方协作的完整闭环 。小结AigoTools 的自动收录引擎把无头浏览器采集 网页转 Markdown 大模型结构化分析三个能力用任务队列串成了一条可靠流水线对想做 AI 工具目录、网站导航站的开发者来说是一个可以直接参考的自动化收录方案。【免费下载链接】aigotoolsAigoTools can help users quickly create and manage website directory, with built-in site auto-crawling features, and also provides internationalization, SEO, image storage, and other functions. It allows users to quickly deploy their own directory site online.项目地址: https://gitcode.com/gh_mirrors/ai/aigotools创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考