Confluence API. How get page content with Python?

Oleg Gonshtein August 18, 2020

Hi,

I need to get the table from page in confluence and use it in Jupyter Notebook. I read the documentation https://developer.atlassian.com/server/confluence/confluence-rest-api-examples/ and tried using examples.

But when I run request 

params = (
('expand', 'body.storage'),
)
response = requests.get('https://wiki.tele2.ru/pages/rest/api/content/27691117', params=params, auth=('login', 'pass'))

I get empty response.

Can anyone help me?

4 answers

2 votes
Jerome Diard April 21, 2022

You may use the atlassian-python-api module from https://atlassian-python-api.readthedocs.io/confluence.html

use the confluence.get_page_by_id API (warning the html document has a typo for this API, it has no "self" parameter), make sure to set the expand parameter to "body.storage"


The API then returns d, a dictionary where the page view storage content is located in d['body']['storage']['value']

Steve Suranie May 17, 2023

@Jerome Diard Thanks for pointing out the typo, was going crazy for a bit. : )

0 votes
Hugh June 11, 2023
0 votes
m350funt January 26, 2023

@Jerome Diard was close but not right

here is code that works for you, if you want get body of page in confluence by python.

```

from atlassian import Confluence

confluence
= Confluence(
username = confluence_login,
password = confluence_password,
verify_ssl = False
)
page_html = confluence.get_page_by_id(page_id, "space,body.view,version,container")
print(page_html['body']['view']['value']
)

```

Karthik PANICKER
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
April 22, 2024

I don't have a direct confluence username and password, what would I need to do to do the same using my microsoft credentials

0 votes
Thiago Masutti
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
August 18, 2020

Hi @Oleg Gonshtein 

Welcome to the Atlassian Community :)

I'm not the best with Python coding, but I believe I can help you.

Since you are using the requests library, I'm assuming you already installed it using pip.

The below script should get you the page contents.

import requests

contentApiUrl = '/rest/api/content'
# Change these based on your instance
confluenceBaseUrl = 'http://localhost:6740/c740'
pageId = '3309573'
username = 'admin'
password = 'admin'

requestUrl = '{confluenceBaseUrl}{contentApiUrl}/{pageId}?expand=body.storage'.format(confluenceBaseUrl = confluenceBaseUrl, contentApiUrl = contentApiUrl, pageId = pageId)
print requestUrl

requestResponse = requests.get(requestUrl, auth=(username, password))

print requestResponse.json()

 

A search for other Community posts will certainly find some more elaborated Python scripts, such as in this post.

 

I hope that helps.

Kind regards,
Thiago Masutti

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events