Pulls merchant data from Dianping (China's Yelp) including ratings, addresses, hours, and user reviews. Handles city switching across China, detects login state automatically, and extracts granular scoring like food quality ratings and tagged feedback frequency. The implementation uses dynamic search box detection to stay stable across different page layouts and manages multi-tab scenarios when searches spawn new windows. Verified across Beijing, Shanghai, Chengdu, and Xi'an. Worth noting it requires manual QR code login when sessions expire, so it's not fully headless, but once authenticated it navigates the site reliably. Best for scraping Chinese restaurant or business intel when you need structured data from Dianping's walled garden.
npx -y skills add stvlynn/dingtalk-wukong-skills --skill dianping-info-query --agent claude-codeInstalls into .claude/skills of the current project.
本技能提供对大众点评网站(dianping.com)的专业信息查询能力,能够安全、高效地获取商户信息、评分数据和相关详情。技能内置完整的双状态登录检测机制,能够准确识别已登录和未登录两种状态,并提供相应的处理流程。
未登录状态检测:
account.dianping.com/pclogin已登录状态检测:
.nick-name 或 .username).user-face)是否存在未登录状态:
已登录状态:
Step 1: 导航到大众点评首页 (https://www.dianping.com)
Step 2: 使用backbone分析页面结构,检测登录状态(双状态检测)
Step 3:
- 未登录:暂停并引导用户手动完成登录
- 已登录:继续执行查询
Step 4: 动态定位搜索框并输入查询关键词
- 使用search工具动态查找多种选择器:#myInput, #J-search-input, input.j-search-input
- 优先使用placeholder属性进行模糊匹配:input[placeholder*='搜索']
- 避免硬编码ref引用,提高跨页面稳定性
Step 5: 提交搜索并等待结果页面加载
Step 6: 自动处理标签页切换(如产生新标签页)
Step 7: 使用readability提取结构化信息(包含完整分项评分和用户标签)
Step 8: 返回整理后的商户信息
Step 1: 导航到当前城市页面
Step 2: 点击城市选择图标(img.city-select-icon)
Step 3: 在城市列表页面搜索目标城市
Step 4: 点击目标城市链接完成切换
Step 5: 验证城市切换成功(检查URL和当前城市显示)
Step 6: 执行目标城市的查询操作
Step 1: 完成基础查询,进入商户详情页面
Step 2: 使用readability提取完整页面内容(自动包含食材评分和用户标签次数)
Step 3: 定位推荐菜区域(#shop-dish)获取菜品列表
Step 4: 提取用户评论信息(评分、评论数量、评论标签及提及次数、详细评论内容)
Step 5: 整理并返回完整的深度信息
Step 1: 执行可能产生新标签页的操作(如搜索提交)
Step 2: 使用list_tabs获取所有打开的标签页
Step 3: 识别最新打开的标签页(通常为搜索结果页)
Step 4: 自动focus到最新标签页
Step 5: 验证标签页URL和标题确保正确性
Step 6: 继续后续操作
navigate: 访问指定URL(首页或具体商户页面)backbone: 分析页面整体结构,识别关键交互元素search: 优先使用动态定位特定元素(搜索框、商户卡片、评分元素等)readability: 提取商户详情页面的结构化文本内容(推荐首选)list_tabs: 获取所有打开的标签页信息(用于多标签页管理)type: 在搜索框中输入查询关键词click: 点击搜索按钮、商户链接或城市选择图标press: 模拟键盘操作(如Enter提交)focus_tab: 切换到指定标签页(用于多标签页场景)readability: 首选方案提取商户详情页面的完整结构化内容(包含食材评分、用户标签次数等)snapshot: 获取完整DOM用于复杂内容分析(备用方案)// Step 1: 导航到首页
use_browser(action="navigate", url="https://www.dianping.com")
// Step 2: 检测登录状态
use_browser(action="backbone")
// 检查是否存在用户名元素(已登录状态)
// Step 3: 动态定位搜索框
use_browser(action="search", query="#myInput")
// Step 4: 执行搜索(已登录,直接执行)
use_browser(action="type", ref="found-ref", text="成都小龙坎老火锅", submit=true)
// Step 5: 提取完整结果(包含食材评分4.7、用户标签次数等)
use_browser(action="readability")
// Step 1: 导航到首页
use_browser(action="navigate", url="https://www.dianping.com")
// Step 2: 检测到未登录状态
use_browser(action="backbone")
// 发现"请登录/注册"文本
// Step 3: 引导用户手动登录
// [暂停操作,提示用户扫码登录]
// Step 4: 用户确认登录后继续
use_browser(action="search", query="#myInput")
use_browser(action="type", ref="found-ref", text="北京中关村 咖啡店", submit=true)
// Step 1: 导航到当前城市
use_browser(action="navigate", url="https://www.dianping.com")
// Step 2: 点击城市选择图标
use_browser(action="search", query=".city-select-icon")
use_browser(action="click", ref="found-ref")
// Step 3: 搜索目标城市
use_browser(action="search", query="成都")
// Step 4: 点击成都城市链接
use_browser(action="click", ref="found-beijing-ref")
// Step 5: 验证切换成功后执行查询
use_browser(action="search", query="#myInput")
use_browser(action="type", ref="found-ref", text="小龙坎火锅", submit=true)
// Step 1: 进入商户详情页面后
use_browser(action="readability") // 提取完整页面内容
// 结果将包含:
// - 综合评分: 4.4分
// - 分项评分: 口味4.4, 环境4.4, 服务4.4, 食材4.7
// - 用户标签: ["排队情况(2269次)", "收银员态度好(647次)", "环境干净整洁(646次)", ...]
// - 推荐菜: ["鸳鸯锅", "玫瑰圆子", "牛奶鸭血", ...]
// - 营业时间: 11:00-次日02:00
// 使用search工具动态定位搜索框,避免硬编码
use_browser(action="search", query="#myInput")
// 或在搜索结果页
use_browser(action="search", query="#J-search-input")
// 根据返回的ref进行操作
use_browser(action="type", ref="found-ref", text="查询关键词", submit=true)
// 统一的搜索框定位策略,兼容不同页面
use_browser(action="search", query="input[placeholder*='搜索'],#myInput,#J-search-input,input.j-search-input")
// 选择第一个找到的搜索框
use_browser(action="type", ref="first-found-ref", text="西安回民街", submit=true)
// 执行搜索后自动处理标签页
use_browser(action="type", ref="search-input-ref", text="回民街", submit=true)
// 获取所有标签页
use_browser(action="list_tabs")
// 自动切换到最新标签页(搜索结果页)
use_browser(action="focus_tab", targetId="latest-search-tab-id")
// 继续后续操作
use_browser(action="readability")
// 查询热门商圈(如回民街、南京路等)
use_browser(action="search", query="input[placeholder*='搜索']")
use_browser(action="type", ref="found-ref", text="西安回民街", submit=true)
// 提取商圈整体信息
use_browser(action="readability")
// 结果包含商圈评分、总评价数、热门标签、地理位置等信息
readability而非snapshot**以提高效率和信息完整性search工具进行动态元素定位(核心优化点)references/browser-actions.md:详细的浏览器工具Action使用指南(已更新动态定位策略)references/dianping-selectors.md:大众点评常用CSS选择器参考(已更新食材评分和用户标签)references/tab-management.md:多标签页处理最佳实践指南(新增)references/city-switching.md:城市切换操作指南references/deep-info-extraction.md:深度信息提取方法(已更新商圈查询支持)references/query-workflow.md:标准查询工作流模板references/login-handling.md:双状态登录处理最佳实践当用户提出以下类型的需求时,应触发本技能:
本技能已通过多场景验证,包括:
技能现已完全符合Anthropic标准skill规范,能够在生产环境中稳定运行。
juliusbrussee/caveman
mattpocock/skills
shadcn/improve
obra/superpowers
forrestchang/andrej-karpathy-skills
vercel-labs/skills