Python+Typora博客图片上传
简介
用Typora 写Markdown 1年多了,这个编辑器的确很好用,但就是写完博客复制到博客园时要一个个手动插替换图片非常麻烦。后来发现最新版的Typora 已经支持图片上传功能,在 设置-图像 里,你可以找到上传服务的设定。
其实现原理:Typora 向程序输入图片的本地地址,然后接收程序的输出,再用其替换文档中的图片
以下为废话:
在Typora 推出这个功能前,要实现这个功能实际上可以编写脚本,先把图片上传到网盘,然后通过返回的url替换文件中图片,但总感觉没有博客园官方的上传好。虽然博客园支持 MetaWeblog ,但是要输入用户名、密码什么的,只是上传图片感觉有点牛刀小用。
作为菜鸟,了解的东西并不多,过程有点坎坷。起初不知道博客园图片上传的接口,傻傻的浏览器调试看js文件。后来无意间发现是post 请求,但还是不知道如何将图片以何种形式传递。最后找到了python 可以通过requests传递文件。直到这一步所需的工具全部具备。
开始配置
1. 编写python 代码
import requests
from sys import argv
uploadUrl = 'https://upload.cnblogs.com/imageuploader/processupload?host=www.cnblogs.com'
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36",
"cookie": #和上面格式一样,输入自己的cookie
}
for i in argv[1:]:
format = address[address.rfind(".")+1:]
file = [
("",("fileName", open(address, "rb"),"image/"+format))
]
response = requests.post(uploadUrl,headers = headers,files = file)
text = response.text
imgUrl = text[text.find("https"):-2]
print(imgUrl)
需要做的就是自己设置浏览器的cookie,并将这个py文件保存。
2. 设置Typora
在图像一栏上传服务设定中按如下选择。自定义命令是 python + 编写的py文件路径,例如:
python C:\Users\EA\Desktop\homework\mpython\bolg.py
设置好后验证一下
建议不要设置插入图片时就 上传图片,可能会出现奇妙的bug。。。
后记
上传所有图片
使用这个可以上传所有图片,但比较坑的是必须要把主题换成经典才有这个按钮
不过你可以自定义上传所有图片的快捷键,教程 https://blog.csdn.net/billycoder/article/details/88861283
enjoy Ctrl+C Ctrl+V ~~~~