技术博客
按类型与分页查询谜语:151-4 接入点实战("关键词"真相)

按类型与分页查询谜语:151-4 接入点实战("关键词"真相)

作者: 万维易源
2026-09-03
猜一猜谜语API按类型查询分页151-4
# 按类型与分页查询谜语:151-4 接入点实战("关键词"真相) > 接口/接入点:猜一猜谜语 API · 根据类型和关键词查询谜语(151-4) · 免费 · 适用人群:需要确定取题/翻页的开发者 · 阅读时间:约 5 分钟 ## 核心要点 - 151-4 请求参数**只有 `typeId`(类型)+ `page`(页码)**,OpenAPI 与页面参数表均无 `keyWord`/关键词字段。 - **"根据关键词查询"是接入点名与说明文案的表述,当前不可作为请求参数传入**——只能按类型 + 分页取,不能按谜面/谜底关键词搜。 - 返回用 `pb` 包裹(`pagebean` 是 151-2 的命名,`pb` 是 151-4 的),分页字段 `allNum`/`allPage`/`currentPage`/`maxResult` 在文档示例中为**字符串**。 ## Why:为什么单写一篇 151-4 很多人看到接入点名"根据类型和**关键词**查询谜语"就想传关键词,结果调不通。本文把真实参数讲清楚,省你半小时试错。 ## What:接口速览 | 项 | 内容 | |----|------| | 地址 | `https://route.showapi.com/151-4?appKey=YOUR_APPKEY` | | 请求参数 | `typeId`(String,否)、`page`(String,否,默认 1) | | 关键词参数 | **无**(文档标题/说明含"关键词",但无对应入参) | | 返回主结构 | `pb.contentlist`(数组,小写 `title`/`answer`) | | 分页 | `pb.allNum`/`pb.allPage`/`pb.currentPage`/`pb.maxResult` | ## How:按类型翻页取题 ### 调用示例 ```bash curl -X POST "https://route.showapi.com/151-4?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ -d "typeId=ysmy&page=1" ``` ### Python 翻页 ```python import requests def list_by_type(type_id, page=1): r = requests.post("https://route.showapi.com/151-4", params={"appKey": "YOUR_APPKEY"}, data={"typeId": type_id, "page": str(page)}, timeout=10).json() rb = r["showapi_res_body"] pb = rb.get("pb", {}) total = int(pb.get("allNum", 0)) # 字符串,先转 int pages = int(pb.get("allPage", 0)) items = pb.get("contentlist", []) for it in items: print(it.get("title"), "→", it.get("answer")) # 注意小写 return total, pages ``` ## 返回示例与解析 ```json "showapi_res_body": { "pb": { "allNum": "24660", "allPage": "1233", "currentPage": "1", "maxResult": "20", "contentlist": [ { "title": "问:仙人掌绿色的扁片是?", "answer": "答:茎", "typeId": "zlmy", "typeName": "智力问答" } ] }, "ret_code": 0 } ``` > 注:`allNum=24660` 是本次 `zlmy` 类查询的该类总记录数,**不是全库总数**;简介"2.5 万+"才是库规模陈述。 ## 进阶/边界 - **无关键词检索**:想"搜谜面含某词"目前做不到,只能先按 `typeId` 取全量再本地过滤。 - **字段小写**:151-4 用 `title`/`answer`(小写),与 151-2 的 `Title`/`Answer`(大写)不同,别混。 - **分页字段为字符串**:`allNum`/`allPage` 等先 `int()` 再比较/计算。 - `typeId` 取值见 [类型清单](https://www.showapi.com/guides/riddle-typelist-151)。 ## FAQ **Q1:151-4 能传关键词搜谜面吗?** 不能。请求参数只有 `typeId` 和 `page`,没有关键词字段。接入点名里的"关键词"目前不可作为入参。 **Q2:和 151-2 随机查询有什么区别?** 151-2 随机返回(可传 typeId 筛选),151-4 按 `typeId`+`page` 确定翻页取,适合"我要第 N 类第 M 页"。 **Q3:page 不传默认第几页?** 文档示例默认 1,不传即第一页。 **Q4:allNum 是全部谜语数量吗?** 不是,是本次 `typeId` 对应类的记录数(如 `zlmy` 类 24660 条)。全库规模以简介"2.5 万+"为陈述,非精确值。 **Q5:返回的 title/answer 大小写要注意什么?** 151-4 是小写;若你代码同时处理 151-2,注意它返回大写 `Title`/`Answer`,详见 [字段避坑](https://www.showapi.com/guides/riddle-field-case-151)。 ## 相关能力 / 下一步阅读 - [避坑:三大接入点返回字段大小写不一致,解析代码怎么写才稳](https://www.showapi.com/guides/riddle-field-case-151) - [猜一猜谜语 API 类型清单:26 类谜语 typeId 完整对照表](https://www.showapi.com/guides/riddle-typelist-151) - [猜一猜谜语 API 返回字段全解:三大接入点的 Title/Answer 与分页差异](https://www.showapi.com/guides/riddle-response-fields-151) - **本系列共 13 篇**:查看[猜一猜谜语 API 指南总目录](https://www.showapi.com/guides/riddle-guides-151)