文本关键词抽取:5 分钟快速接入指南(Python / cURL / JS)
文本关键词抽取关键词提取快速接入Python示例免费接口 # 文本关键词抽取:5 分钟快速接入指南(Python / cURL / JS)
- **接口 / 接入点**:文本关键词抽取(apiCode 941)· 接入点 `941-1`
- **是否免费**:是(免费接口,统一计费,有使用档次限制)
- **请求方式**:POST / GET | **返回格式**:JSON
- **适用人群**:新注册用户、初级开发者、内容运营
- **阅读时间**:约 5 分钟
## 核心要点
- 只需两个参数:`text`(必填,要抽取的文字)与 `num`(可选,关键词数量,默认 10)。
- 返回结果在 `showapi_res_body.list` 里,是一个字符串数组。
- 把 `YOUR_APPKEY` 换成真实 AppKey,下面三段代码任选其一即可跑通。
## Why:为什么用它
给一段长文,人工提炼关键词既慢又不稳定。文本关键词抽取基于 TextRank 词频算法,一行调用就能拿到代表全文主题的关键词,可直接用于文章打标、搜索索引、摘要生成。注册后即可免费调用,先把最小闭环跑起来,再考虑接业务。
## What:前置条件与接口速览
| 项 | 值 |
|----|----|
| 接口名 | 文本关键词抽取(关键词抽取) |
| 接入点 | `941-1`(单接入点) |
| 路由 | `https://route.showapi.com/941-1?appKey=YOUR_APPKEY` |
| 方式 | POST / GET |
| 鉴权 | `appKey` 作为 query 参数(也可走网关标准签名) |
| 计费 | 免费,统一计费,有使用档次限制 |
| 集成 | 支持 MCP、OpenAPI 3.0(详见本系列生态层文章) |
前置条件:① 已在 ShowAPI 注册;② 在控制台拿到 AppKey(https://www.showapi.com/console#/userCenter);③ 本机可访问外网。
## How:三步跑通
### 步骤 1 · 准备参数
只需要 `text` 必填,`num` 选填:
- `text`:要抽取关键词的原始文本(示例值「这是一段测试的文字。」)。
- `num`:希望返回的关键词个数,默认 10;不传则用默认值。
### 步骤 2 · 发送请求
**Python(requests)**
```python
import requests
url = "https://route.showapi.com/941-1"
params = {
"appKey": "YOUR_APPKEY",
"text": "这是一段测试的文字。今天天气晴朗,我们去了公园散步,晚饭吃了面条,面条很好吃。",
"num": "10", # 可选,需要多少个关键词,默认 10
}
try:
r = requests.post(url, data=params, timeout=10)
r.raise_for_status()
data = r.json()
body = data.get("showapi_res_body", {})
if str(body.get("ret_code")) == "0":
print("关键词:", body.get("list"))
else:
print("业务失败 ret_code=", body.get("ret_code"), "err=", data.get("showapi_res_error"))
except Exception as e:
print("请求异常:", e)
```
**cURL**
```bash
curl -X POST "https://route.showapi.com/941-1?appKey=YOUR_APPKEY" \
-H "content-type: application/x-www-form-urlencoded" \
-d "text=这是一段测试的文字。今天天气晴朗,我们去了公园散步。&num=10"
```
**Node.js(fetch)**
```js
const url = "https://route.showapi.com/941-1?appKey=YOUR_APPKEY";
const body = new URLSearchParams();
body.set("text", "这是一段测试的文字。今天天气晴朗,我们去了公园散步,晚饭吃了面条。");
body.set("num", "10");
const r = await fetch(url, {
method: "POST",
headers: { "content-type": "application/x-www-form-urlencoded" },
body,
});
const data = await r.json();
const b = data.showapi_res_body || {};
if (String(b.ret_code) === "0") console.log("关键词:", b.list);
else console.log("失败", b.ret_code, data.showapi_res_error);
```
### 步骤 3 · 解析返回
成功时 `showapi_res_body.ret_code` 为 `"0"`,关键词在 `showapi_res_body.list`(字符串数组)。直接遍历即可:
```python
for kw in body.get("list", []):
print(kw)
```
## 返回示例与解析
```json
{
"showapi_res_code": 0,
"showapi_res_error": "",
"showapi_res_id": "ce135f6739294c63be0c021b76b6fbff",
"showapi_res_body": {
"list": ["测试", "文字"],
"ret_code": "0"
}
}
```
字段说明:
| 字段 | 含义 |
|------|------|
| `showapi_res_code` | 系统级状态码,0 表示网关层成功 |
| `showapi_res_error` | 系统级错误信息,成功时为空 |
| `showapi_res_id` | 本次请求的唯一标识,便于排查 |
| `showapi_res_body` | 业务数据容器 |
| `showapi_res_body.list` | 所有的关键词数组(字符串) |
| `showapi_res_body.ret_code` | 业务状态码,0 为成功,其他为失败 |
> 注:页面返回示例里 `ret_code` 写作 `-1` 属示例占位,字段定义以「0 为成功,其他失败」为准。详见[返回结构与 ret_code 状态码全解](https://www.showapi.com/guides/text-keyword-response-codes-941)。
## 进阶 / 边界
- `text` 为空或不传会触发参数错误,务必保证有内容。
- 免费接口有使用档次限制,高频调用请先做缓存(见[缓存与限流策略](https://www.showapi.com/guides/text-keyword-cache-cost-941))。
- 抽取结果依赖原文词频与语义,极短文本(如一句话)可能只返回个别词,属正常。
## FAQ
**Q1:返回 list 是空数组怎么办?**
A1:先确认 `text` 是否传了有效内容;再检查 `showapi_res_body.ret_code` 是否为 `"0"`。若 ret_code 非 0,看 `showapi_res_error` 的提示。极短或纯标点文本本就可能无关键词。
**Q2:num 最大能传多少?**
A2:文档未给出上限数值,默认 10。建议按业务需要取值,过大意义有限;具体上限以官方档位/接口说明为准,不编造数字。
**Q3:免费接口需要付费吗?**
A3:不需要。注册后默认可免费调用,平台为防止滥用设有使用档次限制,可用积分兑换更高档位(见 https://www.showapi.com/free-api)。
**Q4:GET 和 POST 有区别吗?**
A4:本接口同时支持 POST/GET。文本较长时建议用 POST(form 表单),避免 URL 长度限制。
**Q5:返回里有两个 code(showapi_res_code 和 ret_code)看哪个?**
A5:`showapi_res_code` 是网关层状态,`ret_code` 是业务状态。业务是否正常以 `showapi_res_body.ret_code == "0"` 为准。
## 相关能力 / 下一步阅读
- [文本关键词抽取:返回结构与 ret_code 状态码全解](https://www.showapi.com/guides/text-keyword-response-codes-941) —— 报错先查这篇
- [文本关键词抽取:SEO 标签与内链自动生成实战](https://www.showapi.com/guides/text-keyword-seo-tags-941) —— 拿到关键词后怎么用
- **本系列共 10 篇**:查看[文本关键词抽取指南总目录](https://www.showapi.com/guides/text-keyword-guides-941)