技术博客
周公解梦 API:关键词怎么查才准?关键词选取与结果解读实战

周公解梦 API:关键词怎么查才准?关键词选取与结果解读实战

作者: 万维易源
2026-09-02
周公解梦关键词查询结果解读场景实战
# 周公解梦 API:关键词怎么查才准?关键词选取与结果解读实战 > 接口:免费解梦详细(apiCode 1601)· 接入点:解梦详细(1601-2)· **免费** · 参数 `keyWords`(必填)+ `page`(选填)· 适用人群:内容/工具类开发者、产品经理 · 阅读约 7 分钟 ## 核心要点 - `keyWords` 是**单值关键词**,不是整句自然语言;传「梦见被追杀」不会自动分词,应抽取「追杀」「疯子」这类词再查。 - 返回 `contentlist` 每项含 `name`(命中的梦境词条)与 `detailList`(该词条的多段解读),可据此做前端展示。 - 同一关键词可能命中多个词条(如「飞」命中「疯子」「疯子追杀我」),按 `allNum`/`allPages` 决定要不要翻页。 ## Why:这跟我有什么关系 用户不会乖乖输入「疯子」,他们说的是「我昨晚梦到有人追着我跑」。如果你把整句话塞进 `keyWords`,基本查不到。本文讲清「用户口语 → 关键词 → 调用 → 渲染」这条链路怎么落地。 ## What:前置条件与接口速览 | 项目 | 说明 | |------|------| | 接口地址 | `https://route.showapi.com/1601-2?appKey={your_appKey}` | | 必填参数 | `keyWords`(String,梦境关键词,如「飞」「疯子」「追杀」) | | 选填参数 | `page`(String,页码,默认 1) | | 返回关键字段 | `contentlist[].name`、`contentlist[].detailList`、`allNum`、`allPages` | | 接入点说明 | 内容参考《周公解梦全书》部分信息,提供解读参考(文化参考,非科学/医疗结论) | ## How:从一句话到一段解读 **步骤 1 — 抽取关键词**:用简单规则或词典把用户口语映射到梦境词。下面示例用最小词典做演示(真实生产可用更全的词表)。 ```python import requests, re APP_KEY = "YOUR_APPKEY" URL = "https://route.showapi.com/1601-2" # 极简梦境词表(示意,可按需扩充) DREAM_WORDS = ["疯子", "追杀", "蛇", "水", "飞", "考试", "掉牙", "结婚", "死亡", "钱"] def extract_keyword(text: str) -> str: for w in DREAM_WORDS: if w in text: return w # 兜底:取最后一个词或原句首词 return text.strip().split()[-1] if text.strip() else "飞" def interpret(text: str, page: str = "1"): kw = extract_keyword(text) resp = requests.post( URL, params={"appKey": APP_KEY}, data={"keyWords": kw, "page": page}, headers={"content-type": "application/x-www-form-urlencoded"}, timeout=10, ) data = resp.json() if data.get("showapi_res_code") != 0: raise RuntimeError(data.get("showapi_res_error")) body = data["showapi_res_body"] if body.get("ret_code") != "0": raise RuntimeError(f"ret_code={body.get('ret_code')}") return kw, body kw, body = interpret("我昨晚梦到被疯子追杀") print("抽取关键词:", kw, "| 命中条数:", body["allNum"], "| 总页:", body["allPages"]) for item in body.get("contentlist", []): print("\n【", item["name"], "】") for line in item["detailList"]: print(" -", line) ``` **步骤 2 — 调用并渲染**:`item["name"]` 作标题,`item["detailList"]` 作段落列表,按需折叠「原版周公解梦 / 心理学解梦 / 案例分析」等长文本。 **cURL(关键词「追杀」)** ```bash curl -X POST "https://route.showapi.com/1601-2?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ -d "keyWords=%E8%BF%BD%E6%9D%80&page=1" ``` **Node.js(fetch)** ```javascript const APP_KEY = "YOUR_APPKEY"; const keyword = "追杀"; // 已抽好的关键词 const url = `https://route.showapi.com/1601-2?appKey=${APP_KEY}`; const res = await fetch(url, { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ keyWords: keyword, page: "1" }), }); const data = await res.json(); const body = data.showapi_res_body; for (const item of body.contentlist || []) { console.log("【", item.name, "】"); (item.detailList || []).forEach((l) => console.log(" -", l)); } ``` ## 返回示例与解析 以 `keyWords=飞&page=1` 为例,`contentlist` 命中「疯子」「疯子追杀我」两个词条,每个词条 `detailList` 内含多角度解读(原版周公解梦、梦境解析、心理学解梦、案例分析等)。前端可将每个词条渲染为一张卡片。 ## 进阶 / 边界 - **关键词是单值,不会自动分词**:务必先把用户口语映射成词典词再查,否则命中为空或偏差大。 - **一个词可能命中多条**:如「飞」同时命中「疯子」「疯子追杀我」,用 `allNum`/`allPages` 判断是否需要翻页(见《[分页与结果集怎么用](https://www.showapi.com/guides/dream-pagination-1601)》)。 - **内容属文化参考**:`detailList` 来自《周公解梦全书》类资料,展示时加「仅供娱乐参考」提示,不要当作科学/医疗结论。 - **免费有档位限制**:同一关键词高频重复请求会吃档位,建议对 `(keyWords, page)` 做短缓存(见《[免费档位与调用限制说明](https://www.showapi.com/guides/dream-free-tier-1601)》)。 ## FAQ **Q1:用户输一整句话查不到怎么办?** 接口按单关键词检索,不会自动分词。先用词表/规则抽取梦境词(如「追杀」「蛇」)再查;抽不到时给友好提示而非空结果。 **Q2:一个关键词返回好几条,先展示哪条?** `contentlist` 顺序即接口返回顺序,可按需展示第一条或全列;用 `allNum` 提示「共 N 条」。 **Q3:`detailList` 内容太长怎么展示?** 可首屏展示前 1~2 句,其余折叠;或按「原版/心理学/案例」分段。文本结构由你控制。 **Q4:关键词带特殊字符或表情会怎样?** 按 URL 编码规范传参即可;异常时 `ret_code` 非 0,按失败处理。 **Q5:能不能中文之外查别的?** 接口按中文梦境词检索,建议统一用中文关键词。 ## 相关能力 / 下一步阅读 - [周公解梦 API 返回字段全解:ret_code、contentlist、分页字段一文读懂](https://www.showapi.com/guides/dream-response-fields-1601) - [周公解梦 API:分页与结果集怎么用?maxResult/allNum/allPages 详解](https://www.showapi.com/guides/dream-pagination-1601) - [周公解梦 API 应用场景:娱乐 App / 内容社区 / 客服如何嵌入梦境解读?](https://www.showapi.com/guides/dream-scenarios-1601) - **本系列共 8 篇**:查看[周公解梦 API 指南总目录](https://www.showapi.com/guides/dream-guides-1601)