工作中经常用到ProcessOn,在线制作思维导图,E-R图,类图,框图,流程图,泳道图,原型图, 架构图,组件部署图,UML图,网络拓扑图,组织结构图,BPMN图,这个图,那个图,比起viso来,优点是他是一个网页版工具,打开浏览器即可画图;缺点是他是一个网页版工具,你画的图都存在别人的机器上,虽然可以下载到本地,但如果你的文件比较多,一个一个下载也比较繁琐。好的长话短说,本文提供一个基于Python的Processon文件一键备份脚本,以解决上述问题。

技术分析:

1.登录processon,使用cookie-editor导出cookie文件

2.request时使用cookie参数加载cookie字典,完成用户验证

3.递归调用接口获取文件夹和文件列表

4.获取文件的definition

5.根据文件的definition导出文件

实现如下:

import requests
import re
import os
from threading import Thread
import time
import requests
from io import BytesIO
import http.cookiejar as cookielib
from PIL import Image
import sys
import psutil
import json
import random
import datetime
import mathbase_url = 'https://www.processon.com'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36'
}def get_cookies():cookies_dict = {}try:with open('cooki.txt', 'r') as f:cookies = json.loads(f.read())for cookie in cookies:cookies_dict[cookie['name']] = cookie['value']except Exception as e:print(e)return cookies_dictdef get_defs(chart_id):defs = ''url = '%s/diagraming/%s' % (base_url, chart_id)try:time.sleep(random.random()*5)cookies = get_cookies()response = requests.get(url=url, headers=headers, cookies=cookies)response.raise_for_status()ts = round(time.time() * 1000)url_def = '%s/diagraming/getdef?id=%s&_=%s' % (base_url, chart_id, ts)print(url_def)response = requests.get(url=url_def, headers=headers, cookies=cookies)response.raise_for_status()res = response.textres_json = json.loads(res)def_json = res_json['def']defs = def_json # .replace('\\', '')print(defs)except Exception as e:print(e)return defsdef export_file(file_type, file_path, chart_id):url = 'https://assets.processon.com/diagram_export/mindmap'file_name = file_path.split('\\')[-1]try:defs = get_defs(chart_id)# with open('defff', "w") as f:#     f.write(defs)if defs:data = {'type': file_type,'title':file_name,'chartId':chart_id,'ignore':'definition',# 'width':'',# 'height':'','definition': defs}cookies = get_cookies()res = requests.post(url=url, headers=headers, cookies=cookies, data=data)res.raise_for_status()content = res.contentprint(file_path)with open(file_path, "wb") as f:f.write(content)# exit()except Exception as e:print(e)def load_files(folder_title, folder_id):file_type = 'pos'url = '%s/folder/loadfiles' % base_urlcookies = get_cookies()data = {'resource': 'diagrams','folderId': folder_id,'searchTitle': '','sort': 'title','view': 'list'}time.sleep(random.random()*3)response = requests.post(url=url, headers=headers, cookies=cookies, data=data)response.raise_for_status()# print(response)# print(response.text)if not os.path.exists(folder_title):os.makedirs(folder_title)try:files = json.loads(response.text)if files['result'] == 'success':charts = files['charts']folders = files['folders']for chart in charts:print('\t'+chart['title'])file_path = os.path.join(folder_title, chart['title'])file_path += '.'+file_typeexport_file(file_type, file_path, chart['chartId'])# print('')if bool(folders):for folder in folders:# print('\t'+folder['title'])print(os.path.join(folder_title, folder['title']))load_files(os.path.join(folder_title, folder['title']), folder['folderId'])print('')except Exception as e:print(e)if __name__ == '__main__':backup_date = 'back'+(datetime.datetime.now().strftime('%Y%m%d'))load_files(backup_date, 'root')

免责声明:1、本文资料均来源于网络,如有侵权,请联系删除。2、本文仅作本人学习、记录、分析之用途,无推荐任何人购买之目的,任何人据此操作,本人不负任何责任。

基于Python的ProcessOn思维导图一键备份相关推荐

  1. java英语ppt_来了!思维导图一键转PPT来了!

    都说科技改变生活,本咸鱼真是深有体会.自从用了WPS的一键美化和智能PPT,准时下班耶稣都拦不住我. 但作为摸鱼圣手的我,在高效办公的路上never give up! 在第1001次对着窗外的星星许愿 ...

  2. Processon思维导图、画板、流程图、架构图、时序图 模板超多。。。

    Processon思维导图.画板.流程图.架构图.时序图 模板超多... 邀好友,免费扩容ProcessOn是一个在线协作绘图平台,支持在线制作思维导图.流程图.组织结构图.网络拓扑图.鱼骨图.UML ...

  3. html5脑图_基于HTML5的三维思维导图软件开发技术研究

    龙源期刊网 http://www.qikan.com.cn 基于 HTML5 的三维思维导图软件开发技术 研究 作者:汪升华 唐国纯 来源:<软件工程> 2017 年第 10 期 摘 要: ...

  4. python基础知识思维导图-总结 Python 知识点思维导图

    本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库). 按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字符串,列表,元组,字典,集合),条件&循环,文 ...

  5. python if条件思维导图_跟老齐学Python之从if开始语句的征程

    一般编程的教材,都是要把所有的变量类型讲完,然后才讲语句.这种讲法,其实不符合学习的特点.学习,就是要循序渐进的.在这点上,我可以很吹一通了,因为我做过教师,研究教育教学,算是有一点心得的.所以,我在 ...

  6. 带你自学Python系列(二):Python列表总结-思维导图

    点击箭头处"蓝色字",关注我们哦!! 今天是小编持续更新关于Python的知识总结以及Python实践项目应用的第2天,带你利用零碎时间自学最受欢迎的编程语言之一Python语言. ...

  7. 用 Python 绘制 XMind 思维导图

      最近在整理测试用例的时候发现用例目前只存放在 Jira 网页上,为了方便就想到将数据导出到思维导图上,然后一不下心就实现啦 (* ̄︶ ̄)~ 文章目录 1. install xmind 2. XMi ...

  8. ProcessOn思维导图插入LaTeX数学公式初体验

    上周ProcessOn上线的新功能深得我心,思维导图和思维笔记终于支持插入LaTeX数学公式了,看到官网推送更新手册的第一时间我就去体验了,插入效果和使用体验还是很强的,个人感觉算是所有支持数学公式里 ...

  9. 小编为大家整理的14张学习python的全套思维导图

    本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库). 按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字符串,列表,元组,字典,集合),条件&循环,文 ...

最新文章

  1. 润乾转html居中,[分享]润乾报表内置的jsp编辑器
  2. linux中read,write和recv,send的区别(转)
  3. Linux nginx搭建文件服务器
  4. 玩转 Pandas 的 Groupby 操作
  5. java程序调用Oracle 存储过程 获取返回值(无返回,非结果集,结果集)
  6. jquery.cookie.js
  7. 遇到一个在脚本中读取文件内容占用文件句柄的小问题
  8. JMeter接口测试中,响应数据中文显示乱码的处理方法(转)
  9. Linux的syscall源码,Linux内核跟踪之syscall tracer
  10. 车载电子电器防水防尘等级介绍
  11. 爬虫基础09B—scrapy爬虫
  12. matlab各向异性高斯核方向导数滤波器,加权组合多尺度各向异性高斯核对象轮廓检测...
  13. 睡觉计算机主机在身旁好么,笔记本电脑的睡眠和休眠之间有什么区别
  14. CMYK与有什么RGB区别?
  15. 模拟夜间灯光-科目三-灯光口令(9选5)
  16. Linux中的基础指令
  17. @linux安装及使用(压缩|解压)工具RAR
  18. JAVA新手,开始起航~~
  19. craftsmanship中文_中英文常用广告套语
  20. filco蓝牙不好用_FilcoMinilaAir蓝牙机械键盘使用感受,做工精细手感优良但并不完美...

热门文章

  1. ESP32-C3入门教程 问题篇⑦—— fatal error: esp_bt.h: No such file or directory 找不到esp_bt.h
  2. Centos 6.x 升级到 7
  3. SQL 小练习1(高级语句)—situ
  4. coredump文件的生成以及如何调试coredump文件?
  5. USTC中科大数字图像分析2019年考题回忆
  6. reship others article , quite good for reader
  7. KMP算法之C++代码的实现(详解版!)
  8. dhcp协议服务器怎么设置,DHCP服务器配置详解
  9. 能否用全息图来治疗近视
  10. LocalDate、LocalTime、LocalDateTime常用方法