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:UsersEADesktophomeworkmpythonolg.py

image-20200508151051475

设置好后验证一下

image-20200508151505375

建议不要设置插入图片时就 上传图片,可能会出现奇妙的bug。。。

image-20200508151636847

后记

上传所有图片
image-20200508154152269

使用这个可以上传所有图片,但比较坑的是必须要把主题换成经典才有这个按钮

image-20200508154607624

不过你可以自定义上传所有图片的快捷键,教程 https://blog.csdn.net/billycoder/article/details/88861283

enjoy Ctrl+C Ctrl+V ~~~~

原文地址:https://www.cnblogs.com/starrys/p/12851194.html