You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Confluence API get_all_pages_from_space获取空间全部页面

循环拉取逻辑实现

核心思路

  • 固定单次请求的limit为官方允许的最大值100,减少请求次数
  • 初始化偏移量start为0,每次请求完成后将start累加100
  • 当单次请求返回的页面数量小于100时,说明已经拉取完全部页面,终止循环
  • 每次请求拿到的页面结果统一合并到总列表中存储

完整代码示例

from atlassian import Confluence
import time # 如需加延迟可引入

# 初始化Confluence客户端(替换为你自己的实例配置)
confluence = Confluence(
    url='https://你的Confluence域名',
    username='你的账号',
    password='你的API Token/登录密码'
)

# 拉取配置
SPACE_KEY = "目标空间的标识" # 替换为实际要拉取的空间Key
SINGLE_REQUEST_LIMIT = 100
all_pages = []
current_start = 0

while True:
    # 拉取当前批次页面
    current_batch = confluence.get_all_pages_from_space(
        space=SPACE_KEY,
        start=current_start,
        limit=SINGLE_REQUEST_LIMIT,
        # 需要拉取页面内容、版本等信息可自定义expand参数,示例:expand="body.storage,version"
    )
    all_pages.extend(current_batch)
    
    # 返回结果小于单次请求上限,说明已经拉完所有页面
    if len(current_batch) < SINGLE_REQUEST_LIMIT:
        break
    # 偏移量更新,准备下一批请求
    current_start += SINGLE_REQUEST_LIMIT
    # 页面量很大的场景可加延迟避免触发限流:time.sleep(0.5)

# 结果验证
print(f"总计拉取页面数:{len(all_pages)}")

常见问题说明

  • 只能拉取到50个页面的问题:部分旧版本SDK默认limit参数值为50,手动指定limit=100即可解决
  • 需要拉取博客内容的场景,调用接口时添加content_type='blogpost'参数即可

内容的提问来源于stack exchange,提问作者ChinaMahjongKing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:57:02