资讯动态

并行浏览器代理实战:TinyFish Cookbook的game-buying-guide如何同时抓取10个游戏平台比价

发布时间:2026/10/8 18:32:03 来源:尧图企业网站定制
并行浏览器代理实战TinyFish Cookbook的game-buying-guide如何同时抓取10个游戏平台比价【免费下载链接】tinyfish-cookbookA collection of sample apps and recipes built with the TinyFish web agent. Open-source examples for you to learn build!项目地址: https://gitcode.com/gh_mirrors/ti/tinyfish-cookbook如果你买游戏时总纠结现在买还是再等等那么 TinyFish Cookbook 中的game-buying-guide就是为这件事而生的它是一个 AI 游戏比价工具输入游戏名后10 个并行浏览器代理会同时打开 Steam、Epic、GOG 等平台的搜索页抓取实时价格、折扣与评分并给出立即购买 / 等待 / 观望的建议另有一个专用代理负责查询 SteamDB 历史最低价。一、game-buying-guide 是什么简单说一句话查遍 10 个游戏平台AI 帮你判断最佳购买时机。你在搜索框输入游戏名例如Elden Ring、Cyberpunk 2077应用会同时启动 11 个浏览器代理——10 个分别负责一个游戏商店第 11 个专门去 SteamDB 查历史价格曲线。每个代理都会返回结构化的比价结果当前价、原价、折扣率、用户评分以及 2~3 句推荐理由。覆盖的平台与各代理抓取的关键信息如下来自 README.md平台代理提取的信息Steam价格、折扣、评分、促销结束时间Epic Games Store价格、折扣、是否免费游戏GOG价格、无 DRM 状态、评分PlayStation Store价格、PS Plus 折扣、评分Xbox Store价格、Game Pass 可玩性Nintendo eShop价格、区域定价Humble Bundle价格、捆绑包可购性Green Man Gaming价格、折扣Fanatical价格、捆绑包优惠CDKeys密钥价格、折扣 整套应用没有数据库、没有缓存所有数据都是实时抓取、纯内存运行的。二、整体架构3 个 API 路由搞定一切前端是 Next.js 应用核心交互由 3 个 API 路由支撑平台发现app/api/discover-platforms/route.ts —— 内置一份 10 个商店的硬编码列表 搜索 URL 模板输入游戏名后直接拼出各平台的搜索链接。这一步刻意不用 LLM确定性的事就让代码做省 token 又快。单平台分析app/api/analyze-platform/route.ts —— 调用 TinyFish SDK 的client.agent.stream({ url, goal })把打开商店页、看价格折扣评分、返回规定 JSON写进自然语言 goal结果通过 SSE 流式推给前端。SteamDB 历史价app/api/steamdb-price-history/route.ts —— 专用代理搜索游戏、进入详情页、定位 Price History 区块找出历史最低价、出现日期和折扣深度。三、并行抓取的关键Promise.allSettled 流式推送 ⚡并行化并不神秘核心在客户端钩子 hooks/use-game-search.ts 中的一行await Promise.allSettled([ ...platforms.map((platform) analyzePlatform(platform, gameTitle)), analyzeSteamDB(gameTitle), ]);Promise.allSettled11 个请求同时发出某个平台失败比如商店限流不会拖累其他 10 个结果各自独立更新到界面上——这是并行抓取最实用的容错姿势。SSE 流式事件每个代理在运行中会推送 4 类事件见 route.ts 的事件处理STREAMING_URL云端浏览器的实时画面地址、STATUS当前动作、COMPLETE结构化 JSON 结果、ERROR。实时围观STREAMING_URL会渲染成一张可展开的 iframe你能亲眼看着每个 AI 代理在真实浏览器里翻页面实现在 components/live-browser-preview.tsx。10 张直播卡片同时刷新是这种多代理架构最直观的观感。四、结果不只是抓到了结构化分析与购买决策 比价工具的价值在于判断。每个代理的 goal 提示词analyze-platform/route.ts规定了三档建议规则buy_now折扣 ≥ 30%、历史最低价、或促销即将结束wait原价销售且已知未来有促销或别处更便宜consider中等折扣、值得再权衡所有字段current_price、discount_percentage、recommendation等都定义在 lib/types.ts 中保证前后端契约一致。结果汇总卡片components/results-summary.tsx会做两件事投票机制统计立即购买 / 等待 / 观望各占多少平台用多数派给出总建议最低价冠军解析出所有平台价格标出全场最低并附Buy Now直达链接。⚠️ 一个值得学习的设计细节README 中特别强调COMPLETED ≠ 目标达成——浏览器跑完没崩只说明流程执行了结果内容仍必须做解析校验解析失败会优雅降级为consider而不是抛出错误route.ts。五、本地运行快速启动你的游戏比价工具前置要求Node.js 22.x 一个 TinyFish API Key在 agent.tinyfish.ai 申请Search/Fetch 免费。git clone https://gitcode.com/gh_mirrors/ti/tinyfish-cookbook cd tinyfish-cookbook/game-buying-guide配置环境变量TINYFISH_API_KEY仅用于服务端TINYFISH_API_KEY然后启动npm install npm run dev打开http://localhost:3000输入Baldurs Gate 3或页面推荐的游戏即可看到 10 个代理同时开工。六、项目结构与可复用的最佳实践 ✍️模块文件说明主页面app/page.tsx搜索表单 SteamDB 卡片 结果汇总 代理网格搜索表单components/search-form.tsx游戏名输入 热门游戏快捷按钮代理卡片网格components/agent-grid.tsx实时显示分析中 / 完成 / 等待计数SteamDB 历史低价卡components/steamdb-price-card.tsx历史最低价 是否当前历史低点从 game-buying-guide/README.md 的约束清单里能提炼出多代理比价应用的几条通用经验能确定就不用 LLM平台列表写死LLM 只负责看页面、做判断并行 allSettled 容错N 个代理互不影响部分失败体验依然完整SSE 流式 实时画面长耗时任务给用户看得见的进展而不是干等转圈严格校验结果内容状态完成只是前提内容可信才是目标。这套一个商店一个代理、全部并行、流式汇总的模式换个 URL 模板就能复用到机票比价、多平台电商比价等场景——这正是 TinyFish Cookbook 作为开源示例库的价值所在照着抄改改就能用。【免费下载链接】tinyfish-cookbookA collection of sample apps and recipes built with the TinyFish web agent. Open-source examples for you to learn build!项目地址: https://gitcode.com/gh_mirrors/ti/tinyfish-cookbook创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑