清暮 發表於 2020-5-8 16:21:00

Python+Typora博客图片上传

<h4 id="简介">简介</h4>
<p>用Typora 写Markdown 1年多了,这个编辑器的确很好用,但就是写完博客复制到博客园时要一个个手动插替换图片非常麻烦。后来发现最新版的Typora 已经支持图片上传功能,在 设置-图像 里,你可以找到上传服务的设定。</p>
<p>其实现原理:Typora 向程序输入图片的本地地址,然后接收程序的输出,再用其替换文档中的图片</p>
<blockquote>
<p>以下为废话:</p>
<p>在Typora 推出这个功能前,要实现这个功能实际上可以编写脚本,先把图片上传到网盘,然后通过返回的url替换文件中图片,但总感觉没有博客园官方的上传好。虽然博客园支持 MetaWeblog ,但是要输入用户名、密码什么的,只是上传图片感觉有点牛刀小用。</p>
<p>作为菜鸟,了解的东西并不多,过程有点坎坷。起初不知道博客园图片上传的接口,傻傻的浏览器调试看js文件。后来无意间发现是post 请求,但还是不知道如何将图片以何种形式传递。最后找到了python 可以通过requests传递文件。直到这一步所需的工具全部具备。</p>
</blockquote>
<h4 id="开始配置">开始配置</h4>
<h6 id="1-编写python-代码">1. 编写python 代码</h6>
<pre><code class="language-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:
    format = address

    file = [
      ("",("fileName", open(address, "rb"),"image/"+format))
    ]
    response = requests.post(uploadUrl,headers = headers,files = file)
   
    text = response.text
    imgUrl = text
   
    print(imgUrl)
</code></pre>
<p>需要做的就是自己设置浏览器的cookie,并将这个py文件保存。</p>
<h6 id="2-设置typora">2. 设置Typora</h6>
<p>在图像一栏上传服务设定中按如下选择。自定义命令是 python + 编写的py文件路径,例如:</p>
<p><code>python C:\Users\EA\Desktop\homework\mpython\bolg.py</code></p>
<img src="https://img2020.cnblogs.com/blog/1512048/202005/1512048-20200508153005654-137589935.jpg" alt="image-20200508151051475" style="zoom: 50%">
<p>设置好后验证一下</p>
<img src="https://img2020.cnblogs.com/blog/1512048/202005/1512048-20200508153006583-1219151391.jpg" alt="image-20200508151505375" style="zoom: 50%">
<blockquote>
<p>建议不要设置插入图片时就 上传图片,可能会出现奇妙的bug。。。</p>
   <img src="https://img2020.cnblogs.com/blog/1512048/202005/1512048-20200508153007303-2027644254.jpg" alt="image-20200508151636847" style="zoom: 40%">
</blockquote>
<h4 id="后记">后记</h4>
<h6 id="上传所有图片">上传所有图片</h6>
<img src="https://img2020.cnblogs.com/blog/1512048/202005/1512048-20200508161927251-1647810214.jpg" alt="image-20200508154152269" style="zoom: 50%">
<p>使用这个可以上传所有图片,但比较坑的是必须要把主题换成经典才有这个按钮</p>
<img src="https://img2020.cnblogs.com/blog/1512048/202005/1512048-20200508161927918-2140663501.jpg" alt="image-20200508154607624" style="zoom: 50%">
<p>不过你可以自定义上传所有图片的快捷键,教程 https://blog.csdn.net/billycoder/article/details/88861283</p>
<p>enjoy Ctrl+C Ctrl+V~~~~</p><br><br>
来源:https://www.cnblogs.com/starrys/p/12851194.html
頁: [1]
查看完整版本: Python+Typora博客图片上传