内部wiki使用的是 Atlassian Confluence ,业务上回有些数据用excel跟新到wiki,现在用程序下载目标excel。
file_url直接在页面上获取的,excel文件名其实可以从url里截取,有时间再更吧。
刚开始使用requests.get(url)
无法正常下载,需要登录授权才能下载,在官网看了下文档,找到了他们提供的登录api。
现在发现有问题还是要找官方文档来的简单,整个过程只用了不到半个小时就解决了问题。
具体实现逻辑如下:
def download_wiki_excel(user_info, file_url, save_to_path):
import requests
# 获取登录session,设置官方提供的headers。用户登录信息使用参数传入。
session = requests.session()
session.auth = (user_info['username'], user_info['password'])
headers = {'X-Atlassian-Token': 'no-check'}
# 下载文件。因为文件不大,所以直接全部拉倒内存了。
r = session.get(file_url, headers=headers)
print("ok")
with open(save_to_path, "wb") as f:
print(r.content)
f.write(r.content)
if __name__ == '__main__':
# Wiki页面直接复制过来
file_url = 'http://wiki.mycom.cn/download/path/xxxx.xlsx?api=v2'
save_to_path = 'xxxx.xlsx'
user_info = dict(
username='username',
password='password'
)
download_wiki_excel(user_info, file_url, save_to_path)
参考:
- 官方相关参考文档: https://confluence.atlassian.com/confkb/how-to-disable-collaborative-editing-through-rest-api-call-927727635.html