# 地区新闻接口:按地区/标题查新闻的参数使用指南
> 接口/接入点:地区新闻接口(apiCode 170)· 根据地区查询新闻(170-47)|免费 · POST/GET · 返回 JSON · 适用人群:前端/后端开发者、产品经理 · 阅读时间:约 6 分钟
## 核心要点
- 接入点 47 有 4 个可选业务参数:`areaId`、`areaName`、`title`、`page`,全部非必填。
- `areaName` 传地名(如「江西」)按地区过滤;`areaId` 传区域查询得到的稳定 ID,更精确。
- `title` 可按标题关键词筛选;`page` 控制翻页,每页最多 20 条。
## Why:掌握参数才能精确拿到想要的新闻
默认调用返回全国混合新闻,但你往往只想看「某省 + 某关键词 + 最新几页」。这四个参数就是你的过滤开关。本文讲清每个参数的作用与组合方式,避免「传了没反应」「翻页翻错」等常见坑。
## What:参数速览(接入点 47)
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `areaId` | String | 否 | 地区 ID(由区域查询接入点 48 获取) |
| `areaName` | String | 否 | 地区名称,如「江西」 |
| `title` | String | 否 | 新闻标题关键词,用于筛选 |
| `page` | String | 否 | 页数,默认 1 |
请求头:`content-type: application/x-www-form-urlencoded`。地址:`https://route.showapi.com/170-47?appKey={your_appKey}`。
## How:参数组合实战
### 场景 1:查某省最新新闻
只传 `areaName`:
```python
import requests
r = requests.post("https://route.showapi.com/170-47",
params={"appKey":"YOUR_APPKEY"},
data={"areaName":"江西","page":1},
headers={"content-type":"application/x-www-form-urlencoded"}, timeout=10)
body = r.json()["showapi_res_body"]
print(body["pagebean"]["allNum"], "条")
for it in body["pagebean"]["contentlist"]:
print(it["title"], it["pubDate"])
```
### 场景 2:按标题关键词筛选
`title` 与 `areaName` 可叠加:
```bash
curl -X POST "https://route.showapi.com/170-47?appKey=YOUR_APPKEY" \
-H "content-type: application/x-www-form-urlencoded" \
--data-urlencode "areaName=北京" \
--data-urlencode "title=暴雨" \
--data-urlencode "page=1"
```
### 场景 3:翻页拉取
`page` 自增,直到 `currentPage == allPages`:
```js
async function pullArea(areaName, maxPages=3){
const out=[];
for(let p=1; p<=maxPages; p++){
const r=await fetch("https://route.showapi.com/170-47?appKey=YOUR_APPKEY",{
method:"POST",headers:{"content-type":"application/x-www-form-urlencoded"},
body:new URLSearchParams({areaName,page:p})
});
const d=await r.json();
if(d.showapi_res_code!==0||d.showapi_res_body.ret_code!==0) break;
out.push(...d.showapi_res_body.pagebean.contentlist);
if(d.showapi_res_body.pagebean.currentPage>=d.showapi_res_body.pagebean.allPages) break;
}
return out;
}
```
## 返回示例与解析
返回结构与返回字段全解篇一致:`pagebean` 内含 `allNum`/`allPages`/`currentPage`/`maxResult`/`contentlist`。组合筛选时,`allNum` 会随过滤条件变化(如加了 `title=暴雨` 后总数减少)。
## 进阶 / 边界
- **四个参数全空**:返回全国混合新闻,仍受分页约束(每页 20 条)。
- **areaName 不生效?** 优先改用 `areaId`(见 areaId/areaName 篇),ID 比中文名更稳定,避免地名别名歧义。
- **title 匹配规则**:文档仅标注为「新闻标题」可选参数,具体是精确还是模糊匹配以实际返回为准;建议先用小样本验证再用到生产。
- **page 越界**:传超过 `allPages` 的页码,通常返回空 `contentlist`,按"无数据"处理即可,不算失败。
## FAQ
**Q:areaName 和 areaId 同时传,以哪个为准?**
A:文档未明确优先级,建议二选一使用。实践上优先用 `areaId`(来自区域查询)以保证精确。详见 areaId/areaName 篇。
**Q:title 传了但结果没变化?**
A:先确认 `showapi_res_code`/`ret_code` 为 0,再用小样本对比有无 title 的 `allNum` 差异;若始终无差异,可能是该条件无命中,或匹配规则与预期不同,建议以实际返回为准。
**Q:一次能拉多少条?**
A:每页 `maxResult` 固定 20 条,靠 `page` 翻页;需要更多就循环翻页并配合缓存。
## 相关能力与下一步阅读
- [地区新闻接口区域查询:获取全国 34 个地区与 areaId 映射](https://www.showapi.com/guides/region-news-region-query-170)
- [地区新闻接口:areaId 与 areaName 怎么选,先用区域查询拿 ID 再查新闻](https://www.showapi.com/guides/region-news-areaid-areaname-170)
- **本系列共 12 篇**:查看[地区新闻接口(apiCode 170)官方指南总目录](https://www.showapi.com/guides/region-news-guides-170)