从 public url 中获取合流页面的页面 ID
Get page id of a confluence page from its public url
给定 page_url
如何获得 Confluence page_id
。例如:
如果这是显示 URL:https://confluence.som.yale.edu/display/SC/Finding+the+Page+ID+of+a+Confluence+Page
我想使用 Confluence REST API
获取它的 page_id
更多详情here
在这种情况下,您可以解析 url 以获得融合 space (SC
) 和页面标题 (Finding the Page ID of a Confluence Page
),然后使用 confluence.get_page_id(space, title)
.
from atlassian import Confluence
page_url = "https://confluence.som.yale.edu/display/SC/Finding+the+Page+ID+of+a+Confluence+Page"
confluence = Confluence(
url='https://confluence.som.yale.edu/',
username=user,
password=pwd)
space, title = page_url.split("/")[-2:]
title = title.replace("+", " ")
page_id = confluence.get_page_id(space, title)
请注意,当您的标题包含特殊字符(+
或 ü
、ä
...)时,您的页面 url 将已经包含这样的 ID : https://confluence.som.yale.edu/pages/viewpage.action?pageId=1234567890
所以你可能想先检查一下。
编辑:这里是您的函数的一个版本:
from atlassian import Confluence
import re
import urllib
# regex pattern to match pageId if already in url
page_id_in_url_pattern = re.compile(r"\?pageId=(\d+)")
def get_page_id_from_url(confluence, url):
page_url = urllib.parse.unquote(url) #unquoting url to deal with special characters like '%'
space, title = page_url.split("/")[-2:]
if re.search(page_id_in_url_pattern, title):
return re.search(page_id_in_url_pattern, title).group(1)
else:
title = title.replace("+", " ")
return confluence.get_page_id(space, title)
if __name__ == "__main__":
from getpass import getpass
user = input('Login: ')
pwd = getpass('Password: ')
page_url = "https://confluence.som.yale.edu/display/SC/Finding+the+Page+ID+of+a+Confluence+Page"
confluence = Confluence(
url='https://confluence.som.yale.edu/',
username=user,
password=pwd)
print(get_page_id_from_url(confluence, page_url))
给定 page_url
如何获得 Confluence page_id
。例如:
如果这是显示 URL:https://confluence.som.yale.edu/display/SC/Finding+the+Page+ID+of+a+Confluence+Page
我想使用 Confluence REST API
获取它的page_id
更多详情here
在这种情况下,您可以解析 url 以获得融合 space (SC
) 和页面标题 (Finding the Page ID of a Confluence Page
),然后使用 confluence.get_page_id(space, title)
.
from atlassian import Confluence
page_url = "https://confluence.som.yale.edu/display/SC/Finding+the+Page+ID+of+a+Confluence+Page"
confluence = Confluence(
url='https://confluence.som.yale.edu/',
username=user,
password=pwd)
space, title = page_url.split("/")[-2:]
title = title.replace("+", " ")
page_id = confluence.get_page_id(space, title)
请注意,当您的标题包含特殊字符(+
或 ü
、ä
...)时,您的页面 url 将已经包含这样的 ID : https://confluence.som.yale.edu/pages/viewpage.action?pageId=1234567890
所以你可能想先检查一下。
编辑:这里是您的函数的一个版本:
from atlassian import Confluence
import re
import urllib
# regex pattern to match pageId if already in url
page_id_in_url_pattern = re.compile(r"\?pageId=(\d+)")
def get_page_id_from_url(confluence, url):
page_url = urllib.parse.unquote(url) #unquoting url to deal with special characters like '%'
space, title = page_url.split("/")[-2:]
if re.search(page_id_in_url_pattern, title):
return re.search(page_id_in_url_pattern, title).group(1)
else:
title = title.replace("+", " ")
return confluence.get_page_id(space, title)
if __name__ == "__main__":
from getpass import getpass
user = input('Login: ')
pwd = getpass('Password: ')
page_url = "https://confluence.som.yale.edu/display/SC/Finding+the+Page+ID+of+a+Confluence+Page"
confluence = Confluence(
url='https://confluence.som.yale.edu/',
username=user,
password=pwd)
print(get_page_id_from_url(confluence, page_url))