🐷 干饭雷达 —— 美食店铺自动收集与归档工具。当用户发送一个网页链接(抖音视频、小红书帖子、大众点评、美团、微博、B站、快手等), 且内容为美食探店、餐厅推荐、美食攻略类时自动触发。 触发条件:(1) 用户消息中包含美食/探店/餐厅相关的 URL 链接(如 douyin.com、xiaohongshu.com、bilibili.com、weibo.com、 dianping.com、meituan.com 等),或用户明确要求"记录到美食地图"、"收集这个店铺";
🐷 干饭雷达 —— 美食店铺自动收集与归档
功能概述
🐷 干饭雷达 —— 美食店铺自动收集与归档是一项面向实际任务的技能,主要用于收到用户发送的链接后,按以下步骤执行:;Step 1: 抓取网页内容;
核心要点
- 使用 curl 抓取链接内容,提取可读文本:;
- 平台适配要点:;
- 抖音 :短链(v.douyin.com)需 -L 跟随重定向;
使用与执行
HTML 中搜索 videoInfoRes 或 item_list JSON 块提取 desc、digg_count 等;小红书 :搜索 note。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
🐷 干饭雷达 —— 美食店铺自动收集与归档
核心流程
收到用户发送的链接后,按以下步骤执行:
Step 1: 抓取网页内容
使用 curl 抓取链接内容,提取可读文本:
# 抖音短链需要 -L 跟随重定向 curl -s -L -A "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1" ""
平台适配要点:
- 抖音:短链(v.douyin.com)需
-L跟随重定向;HTML 中搜索videoInfoRes或item_listJSON 块提取 desc、digg_count 等 - 小红书:搜索
note或noteDataJSON 块 - B站:搜索
videoData或__INITIAL_STATE__ - 大众点评/美团:直接解析 HTML 结构
- 微博:搜索
$render_data或statusJSON 块
提取后判断内容是否与美食相关(包含餐厅名、菜品名、美食标签等)。若非美食内容,告知用户"该链接不是美食相关内容"并停止。
Step 2: 提取店铺信息
从抓取到的内容中识别并提取以下信息:
| 字段 | 说明 | 必填 |
|---|---|---|
| 店名 | 店铺全名 | ✅ |
| 简介 | 一句话描述(≤60字),让人一眼知道吃什么 | ✅ |
| 推荐菜 | 博主提到/推荐的菜品列表 | ✅ |
| 博主评价 | 博主的原话评价或总结 | 可选 |
| 人均消费 | 人均价格 | 可选 |
| 来源 | 原始链接 + 博主名称 | ✅ |
| 原始链接 | 用户发送的完整原始 URL,方便日后点击回味视频/帖子 | ✅ |
提取规则:
- 视频描述中的店名通常在标题或
#标签中 - 如果视频提到多家店,逐一提取每家店的信息
- 简介字段:核心目标是让人一眼知道吃什么,不超过60字
- 如果 HTML 中无法提取到具体店铺信息(如视频内容在画面/语音中),使用
web_search搜索"博主名" "视频标题关键词" 店名来补充
Step 3: 搜索位置信息
对每家店铺,通过 web_search 搜索精确位置:
搜索词:"{店名}" "{城市}" 地址
需要确定:
- 城市(如:成都、兰州、北京)
- 行政区(如:锦江区、武侯区、城关区)
- 详细地址(如:春熙路XX号)
- 经纬度(可选,如果搜索结果中有)
位置搜索策略:
- 优先从原始内容中识别城市信息(标题标签、视频描述)
- 搜索
"店名" 地址获取详细位置 - 如果搜索不到精确地址,至少确定到城市+行政区级别
- 对于连锁店,优先记录视频中提到的具体门店
Step 4: 写入美食地图文件
文件路径: 与本 Skill 同级目录,即 /data/workspace/.agent/skills/food-collector/food-map.md
若文件不存在,创建新文件并写入头部模板(见下方格式)。 若文件已存在,读取现有内容,将新店铺插入到对应的城市→行政区分类下。
归档规则:
- 一级标题:城市名(如
## 🏙️ 成都) - 二级标题:行政区名(如
### 📍 锦江区) - 同一城市的店铺归到同一个城市标题下
- 同一行政区的店铺归到同一个行政区标题下
- 新增城市/行政区时,按拼音排序插入
- 每家店铺用统一的卡片格式记录
去重规则: 写入前检查文件中是否已存在同名店铺(同城市+同店名),若已存在则提示用户并跳过(或询问是否更新)。
文件格式模板
# 🗺️ 我的美食地图
> 自动收集自各平台美食视频/帖子,按城市和行政区归档
> 最后更新:YYYY-MM-DD HH:MM
---
## 🏙️ {城市名}
### 📍 {行政区名}
#### 🍽️ {店名}
- **简介**:{一句话简介,≤60字}
- **推荐菜**:{菜品1}、{菜品2}、{菜品3}
- **人均**:{人均消费}
- **地址**:{详细地址}
- **博主评价**:{博主原话评价}
- **来源**:[{博主名} - {平台}]({原始链接}) | 收录于 {YYYY-MM-DD}
- **🔗 原始链接**:{原始视频/帖子完整URL}(点击回味)
---
Step 5: 确认与反馈
写入完成后,向用户输出摘要:
✅ 已收录 {N} 家店铺到美食地图:
📍 {城市} - {行政区}
🍽️ {店名1}:{简介}
🍽️ {店名2}:{简介}
📄 文件位置:/data/workspace/.agent/skills/food-collector/food-map.md
特殊处理
无法提取具体店铺时
如果网页内容是视频类(抖音/B站等),且 HTML 中只有标题和标签没有具体店名:
- 先用
web_search搜索"{博主名}" "{视频标题}" 店名 推荐 - 如果仍然无法确定,告知用户:"该视频的店铺信息在画面/语音中,我无法直接提取。请告诉我视频中提到了哪些店铺,我来帮你查找位置并记录。"
多家店铺批量处理
如果一个视频/帖子包含多家店铺(如"成都5大苍蝇馆子"),逐一处理每家店铺,分别搜索位置信息,全部写入同一次归档操作中。
已有美食地图文件的合并
读取现有文件时,解析已有的城市和行政区结构,新店铺插入到正确位置,保持文件整体结构不变。
城市查询与觅食路线推荐
当用户提到自己在某个城市(如"我在成都"、"我到兰州了"、"我现在在北京"),按以下步骤执行:
Step A: 识别城市
从用户消息中提取城市名称。支持的表达方式:
- "我在{城市}"、"我到{城市}了"、"我现在在{城市}"
- "我来{城市}了"、"{城市}有什么好吃的吗"
- "帮我看看{城市}的美食地图"
Step B: 读取美食地图
读取 /data/workspace/.agent/skills/food-collector/food-map.md,找到对应城市(## 🏙️ {城市名})下的所有店铺。
- 如果该城市不存在,告知用户:"你的美食地图中还没有{城市}的店铺记录哦,发我探店视频链接我来帮你收集!"
- 如果文件不存在,告知用户:"你的美食地图还是空的,快发我美食视频链接开始收集吧!"
Step C: 列出所有店铺
按行政区分组,输出该城市所有已收录店铺的摘要:
🏙️ {城市} 美食地图(共 {N} 家店)
📍 {行政区1}
🍽️ {店名1} — {简介} | 人均{XX}元
🍽️ {店名2} — {简介} | 人均{XX}元
📍 {行政区2}
🍽️ {店名3} — {简介} | 人均{XX}元
Step D: 推荐觅食路线
根据店铺的地理位置(行政区 + 详细地址),规划一条合理的觅食路线:
- 就近原则:同一行政区的店铺安排在一起吃
- 时间分配:按 早餐→午餐→下午茶→晚餐→宵夜 的时间线安排
- 路线优化:尽量减少跨区奔波,相邻行政区串联
- 用餐节奏:每餐之间留出消化和移动时间
输出格式:
🗺️ 推荐觅食路线
🌅 早餐
→ {店名}({行政区}):{推荐菜}
🌞 午餐
→ {店名}({行政区}):{推荐菜}
🍵 下午茶
→ {店名}({行政区}):{推荐菜}
🌙 晚餐
→ {店名}({行政区}):{推荐菜}
🌃 宵夜
→ {店名}({行政区}):{推荐菜}
💡 路线说明:{简要说明路线逻辑,如"从XX区出发,沿途经过XX区,最后到XX区"}
如果店铺数量超过一天能吃完的量(>5家),则拆分为多天路线,标注"Day 1"、"Day 2"等。 如果店铺数量较少(≤3家),则简化为一条路线,不必强行填满所有时段。
注意事项
- 所有写入操作使用
edit_file或replace_in_file工具,不要覆盖已有内容 - 简介字段必须精炼,核心是让人一眼知道吃什么
- 推荐菜来源优先级:视频/帖子明确提到 > 网络搜索到的招牌菜
- 地址信息尽量精确到门牌号
- 每次写入后更新文件头部的"最后更新"时间
热门AI工具
相关专题
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。
0
2026.10.22
PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.5万人学习
共6课时 | 54.7万人学习
