# next_cursor 是什么，为什么不能直接跳到第 5 页？

> 社交数据接口的游标翻页怎么用：next_cursor 和 has_more 的含义，为什么没有页码可跳，每一页怎么收费，以及一个带页数上限的安全循环。

网页版：https://okdata.online/zh/answers/api-cursor-next-page/

**简短回答：**next_cursor 是一个只有服务端看得懂的书签，记录上一页停在哪里；原样作为 cursor 传回去，就能拿到下一页。平台自己的信息流只知道“某个位置之后是什么”，所以想要第 5 页，就得先取第 1 到第 4 页。每一页是一次调用、收一次费：在 okdata 上翻 5 页抖音评论是 $0.01。

所有列表类接口都是一次返回一页，数据旁边带一个 `page` 对象：

```json
"page": { "next_cursor": "c1.k3Vq9TzR0bYw2LmXe8NdPa", "has_more": true }
```

`next_cursor` 是个书签，记录这一页停在了哪里，内容只有服务端能读懂。要下一页，就把它作为 `cursor` 参数原样传回去。`has_more` 为 false 时，列表已经到底，也就没有游标了。

## 为什么没有“page=5”

按页码或偏移量翻页（`page=5`、`offset=80`），前提是服务端能数数、能跳过。各平台的信息流不是这么提供的。抖音每返回一批评论都附带一个位置指针，下一批就是这个位置之后的内容。小红书搜索倒是有页码，但每次请求还得带上前一页返回的会话参数，所以第一次请求不可能直接是第 5 页。Slack 工程团队在讲自家 API 时也说过同样的取舍：游标翻页在你翻页期间有新内容插进来也不会错乱，但没有总页数，客户端也没法跳到指定页。X 的 API 用 `next_token`，道理一样。

所以第 5 页只能从第 1 到第 4 页一路翻过去。游标也只属于生成它的那个请求：要发给同一个接口，query、id、sort 都保持不变；`view` 和 `fields` 可以在翻页时换。拿别的请求的游标来用，会在扣费之前就被拒绝，返回 `cursor_mismatch`；过了有效期的游标返回 `cursor_expired`，同样不扣费。

## 翻页怎么收费

一次调用返回一页，每一页都按一次调用计费。

| 要做的事 | 调用次数 | 费用 |
|---|---|---|
| 一个视频评论的第一页，约 20 条 | 1 | $0.002 |
| 评论翻到第 5 页 | 5 | $0.01 |
| 小红书搜 `防晒霜`，翻 5 页 | 5 | $0.10 |
| 同样的搜索翻 20 页 | 20 | $0.40 |

开始之前先想好要几页，够了就停。在代码里写死一个页数上限，比靠记性靠谱，也更省钱。

## 示例

```python
import os, requests

URL = "https://api.okdata.online/v1/douyin/videos/comments/list"
KEY = os.environ["OKDATA_API_KEY"]

def comments(video_id: str, max_pages: int = 5):
    cursor, seen = None, set()
    for n in range(max_pages):
        params = {"id": video_id, "fields": "id,text,likes,published_at"}
        if cursor:
            params["cursor"] = cursor
        r = requests.get(URL, params=params, timeout=60, headers={
            "Authorization": f"Bearer {KEY}",
            "Idempotency-Key": f"dy-comments-{video_id}-{n}-{cursor or 'first'}",
        }).json()
        if r["code"] != "ok":
            raise RuntimeError(f'{r["code"]}: {r["message"]}')
        for c in r["data"]["items"]:
            if c["id"] not in seen:
                seen.add(c["id"])
                yield c
        if not r["page"]["has_more"]:
            return
        cursor = r["page"]["next_cursor"]

rows = list(comments("7412345678901234567", max_pages=5))
print(len(rows), "条评论")
```

幂等键里带着游标，超时之后重试这一页，拿到的是存好的结果，不会付两次钱。

## 限制

- 游标是用来“现在接着往下翻”的，不是留到下周再续的书签。游标因为 `cursor_expired` 被拒，就不带游标从头开始。
- 翻页期间列表在变：新评论进来、排序在动。所以要像上面的循环一样按 `id` 去重。
- 平台对列表能翻多深有上限，见[小红书搜索为什么翻到两百来条就没了](/zh/answers/xiaohongshu-search-result-limit/)和[抖音评论为什么比显示的评论数少](/zh/answers/douyin-comments-incomplete/)。
- 完整的翻页约定见[请求与响应](/zh/docs/requests/)；每个接口的页面，比如[抖音视频评论](/zh/apis/douyin/videos/comments/list/)和[小红书笔记搜索](/zh/apis/xiaohongshu/notes/search/)，都写着每页条数。

## 用到的接口

- [抖音视频评论](https://okdata.online/zh/apis/douyin/videos/comments/list/) `douyin.videos.comments.list`：$0.002/次 · 每页约 20 条评论
- [小红书笔记搜索](https://okdata.online/zh/apis/xiaohongshu/notes/search/) `xiaohongshu.notes.search`：$0.02/次 · 每页约 20 篇笔记

## 更多抖音内容

- [抖音 API](https://okdata.online/zh/apis/douyin/)
- [抖音 API Python 教程：搜索、视频、账号和评论（2026）](https://okdata.online/zh/guides/douyin-api-python/)
- [怎么批量导出抖音视频评论](https://okdata.online/zh/guides/douyin-video-comments/)
- [怎么在抖音星图按条件找达人并拿到报价单](https://okdata.online/zh/guides/douyin-xingtu-creator-rates/)
- [小红书 API Python 教程：笔记、博主和评论（2026）](https://okdata.online/zh/guides/xiaohongshu-api-python/)
- [怎么按关键词批量导出小红书评论](https://okdata.online/zh/guides/xiaohongshu-note-comments/)
- [怎么搜索小红书笔记并导出成 CSV 表格](https://okdata.online/zh/guides/xiaohongshu-search-export-notes/)
- [怎么写一个能抓抖音评论、小红书笔记的 Claude Code Skill？](https://okdata.online/zh/answers/agent-skill-social-media-data/)
- [怎么用大模型从抖音、小红书评论里提炼用户痛点？](https://okdata.online/zh/answers/llm-comment-pain-points-douyin-xiaohongshu/)
- [MediaCrawler 老是跑不通，换付费接口值不值？](https://okdata.online/zh/answers/mediacrawler-alternative-paid-api/)
- [MediaCrawler 有 MCP 或 API 版吗？想直接给 AI 智能体用](https://okdata.online/zh/answers/mediacrawler-mcp-for-ai-agents/)
- [n8n 工作流里，小红书、抖音的数据从哪儿来？](https://okdata.online/zh/answers/n8n-xiaohongshu-douyin-data/)
- [抖音评论采集用什么？官方接口、第三方 API、开源爬虫、采集工具 4 类方案怎么选（2026）](https://okdata.online/zh/compare/douyin-comment-scraping/)
- [抖音数据接口有哪些？官方开放平台、第三方 API、开源爬虫 4 类方案怎么选（2026）](https://okdata.online/zh/compare/douyin-data-apis/)

## 资料来源

- [Evolving API Pagination at Slack（偏移翻页与游标翻页）](https://slack.engineering/evolving-api-pagination-at-slack/) (读取于 2026-11-12)
- [X API 文档：用 next_token 翻页](https://docs.x.com/x-api/fundamentals/pagination) (读取于 2026-11-12)

这个问题出现过的地方（读取于 2026-11-12）：

- https://stackoverflow.com/questions/60622392
- https://stackoverflow.com/questions/27868922
- https://github.com/davidteather/TikTok-Api/issues/1183

更新于 2026-11-12
