✍ Confluence 한 공간의 전체 페이지 리스트 추출하는 방법입니다.
https://github.com/atlassian-api/atlassian-python-api 을 활용하였습니다. (558)
테스트 환경
- Confluence 7.4.3
- Python 3.7
사전 설치
$ pip install atlassian-python-api
코드
get_all_pages_from_space()
함수로는 최대 500개 까지의 페이지만 추출 됩니다.
API 호출 시 Pagination(페이지 매김) 제한이 있는데요. (이걸 몰랐어요.. )
while
과 flag
를 활용해서 Pagination 처리를 극복(?) 해줍니다.
get_all_pages.py
from atlassian import Confluence
confluence = Confluence(
url='<confluence_url>',
username='<id>',
password='<password>')
page_ids = []
flag = True
limit = 500
step = 0
while flag:
pages = confluence.get_all_pages_from_space(space=space, start=step * limit, limit=limit)
step += 1
if len(pages) == 0:
flag = False
else:
for page in pages :
page_ids.append(page.get('id')) # page.get('title') 이라면 페이지 제목
# 전체 페이지 수
print(len(page_ids))
for page_id in page_ids :
print(page_id) # 전체 페이지 ID 출력