有道云笔记Markdown图片链接解决办法

引言

在Markdown文档的编辑中,图片需要一个资源地址,你可以使用网络链接也可以使用本地路径,但是本地路径在你更换电脑,或者云端浏览的时候就会失去作用,无法查看图片。针对这个问题,很多人的解决办法是使用一个图床,比如付费的七牛,免费的微博图床、极简图床等,就是将你的图片上传到这些网站,它们会生成一个此图片的URL,然后你就可以在Markdown中使用此URL来使用图片。由于我平时使用有道云笔记进行记载笔记,所以我采用了如下方法:在有道云笔记中单独建立一个资源文件,然后将所引用的图片粘贴进去,点击上方共享按钮,获得共享URL,在浏览器中打开这个链接,按F12,在源码中找到图片对应的链接。不过这个查找过程有点麻烦,还需要优点编程基础,所以我写了一个脚本,来自动做这件事。

1. 获取分享链接中的图片URL

分享连接如下:http://note.youdao.com/noteshare?id=3f12b7cb6d8928ed43b30d4495aacc4c&sub=A6D2DC88F50E4A6B8D0FD78BA5A9BFBC,从这个链接无法直接获取图片内容,因为这个内容是由JS代码请求的,需要转换成JS所请求的网址格式:http://note.youdao.com/noteshare?id=3f12b7cb6d8928ed43b30d4495aacc4c&sub=A6D2DC88F50E4A6B8D0FD78BA5A9BFBC。(下方脚本需要requests库,可以使用pip install requests 命令安装)

import re
def converUrl(url):  reg = r'id=(.*?)&'   s = re.search(reg, url)    if s is not None:       url = "http://note.youdao.com/yws/public/note/%s?editorType=0&cstk=orBX-yw0" % s.group()[3:-1]        return url   else:        return None

得到url,使用requests获取url指向的网页内容,从中提取图片url。

import json
import re
import requests
def getHtml(url):r =requests.get(url=url)#print(r.status_code)#print(r.text)return r.text;
def getImageUrls(url):html =getHtml(url)try:js = json.loads(html)ss = js["content"]except Exception:return Nonereg = r'src="(.*?)"'pattern = re.compile(reg)ret = re.findall(pattern, ss)return ret

测试上述代码

if __name__=="__main__":url ="http://note.youdao.com/noteshare?id=3f12b7cb6d8928ed43b30d4495aacc4c&sub=A6D2DC88F50E4A6B8D0FD78BA5A9BFBC"url = converUrl(url)print(url)print(getImageUrls(url))

2. 构建一个UI界面,方便操作

界面如下:

youdao_url 输入分享链接,点击save,就会保存此链接,下次打开无需重复输入。点击ok,会在image_url中显示分享链接中的最后一个图片的URl,复制粘贴即可。代码如下:(需要keyboard库、pyperclip库,使用pip install keyboard、pip install pyperclip 分别安装)

from tkinter import *
from Main import * #引用上述代码
import keyboard
import pyperclip
from config import *
class MainWindow:def button_ok_listener(self,event):url =self.text_name.get('1.0',END)url = converUrl(url)list =getImageUrls(url)if list is not None:self.text_sex.delete('1.0',END)self.text_sex.insert(INSERT,list[-1:])pyperclip.copy("".join(list[-1:]))def button_save_listener(self,event):url =self.text_name.get('1.0',END)dict ={"LastUrl":url}updateConfig(dict)def Listener(self):url = self.text_name.get('1.0', END)url = converUrl(url)list = getImageUrls(url)if list is not None:self.text_sex.delete('1.0', END)self.text_sex.insert(INSERT, list[-1:])pyperclip.copy("".join(list[-1:]))def __init__(self):self.frame = Tk()self.label_name = Label(self.frame, text="youdao_url:")self.label_sex = Label(self.frame, text="image_url:")self.text_name = Text(self.frame, height="1", width=30)if getRecURL() is not None:self.text_name.insert("1.0", getRecURL())self.text_sex = Text(self.frame, height="1", width=30)self.label_name.grid(row=0, column=0)self.label_sex.grid(row=1, column=0)self.button_save = Button(self.frame,text ="save" ,width=10)self.button_ok = Button(self.frame, text="ok", width=10)self.text_name.grid(row=0, column=1)self.text_sex.grid(row=1, column=1)self.button_save.grid(row=0,column=2,padx=10)self.button_ok.grid(row=1, column=2,padx=10)self.button_ok.bind("<ButtonRelease-1>",self.button_ok_listener)self.button_save.bind("<ButtonRelease-1>",self.button_save_listener)keyboard.add_hotkey('ctrl+shift+a', self.Listener)self.frame.mainloop()
frame = MainWindow()

同时我们加入了全局快捷方式:ctrl+shift+a,无需手动点击ok,只需按住ctrl+shift+a,此脚本会自动获取分享连接中的最后一张图片,并自动粘贴到剪贴板,此时你就可以直接ctrl+v即可粘贴使用。

3. 打包成exe

将python脚本打包的软件有好多,这里使用了pyinstaller这个软件。需要使用 pip install pyinstalle命令安装。

import subprocess,os
def exe(pyfile,dest="",creator=r"E:\software\Python36\Scripts\pyinstaller.exe",ico=r"C:\Users\XX\Desktop\ico.ico",noconsole=False):insert=""if dest:insert+='--distpath="{}"'.format(dest)else: insert+='--distpath="./"'.format(os.path.split(pyfile)[0])if ico: insert+=' --icon="{}" '.format(ico)if noconsole: insert+=' --noconsole 'print(insert)runstring='"{creator}" "{pyfile}" {insert} -F'.format(**locals())subprocess.check_output(runstring)exe(pyfile='F:\\Python\\YDCGallery\\UI.py',dest='C:\\Users\\XX\\Desktop\\UI',noconsole=True)

注意将上述路径分别换成自己使用的路径,即可生成一个可执行程序.exe。

4. 软件使用方法

  • 打开有道云笔记,新建一个笔记,作为资源文件,点击上方分享按钮,获取分享链接。

  • 打开本软件,在image_url文本框中输入上述链接,点击save,下次软件启动就会填充此url,无需手动添加。

  • 将你需要的图片粘贴到之前新建的有道云笔记中,按ctrl+s,(或者点击左上方的保存并同步),然后点击本软件ok,image_url中就会显示这个图片的url,同时也会复制到粘贴板中,你直接ctrl+v就可以粘贴此url。

  • 本软件支持全局快捷方式,ctrl+shift+a,也就是说你可以将图片粘贴到有道云笔记中的资源文件后,ctrl+s保存,然后ctrl+shift+a即可获取此url。(前提完成第一、二步骤:)

注意

本软件原理是将图片传到有道云笔记中,利用它的分享功能,获取图片url。也就是你将图片复制到有道云笔记中,按ctrl+s后需要等待有道云笔记会自动保存此图片到服务器,然后ctrl+shift+a才能获取到正确的url。一般来说ctrl+s后基本就可以马上获取url,速度很快。
此方法不保证以后永久有效。
exe下载链接 http://download.csdn.net/detail/u013119744/9893187

有道云笔记Markdown图片链接解决办法相关推荐

  1. 有道云笔记Markdown图片插入居中方法

    有道云笔记Markdown图片插入居中方法 使用本地图片插入 使用html方式插入图 使用本地图片插入 有道云笔记可以通过这样插入图片: ![图片名](本地图片地址) 注意: 这样的方式并不能控制照片 ...

  2. 有道云笔记登录失败,解决办法

    今天登录有道云笔记是,无论是app还是pc端,一直显示登陆失败,摸索了解决方法 先登录网页版官网,网页版肯定可以登录的 https://note.youdao.com/ 进入账号安全 点击你要登陆的端 ...

  3. android云同步失败,有道云笔记同步失败如何解决 有道云笔记同步不了解决办法攻略大全...

    有道云笔记(原有道笔记)是2011年6月28日网易旗下的有道推出的个人与团队的线上资料库.有道云笔记采用了增量式同步技术,即每次只同步修改的内容而不是整个笔记."三备份存储"技术将 ...

  4. 有道云笔记 Markdown 中如何引用自己的图片不用开通会员的办法(之前网友提到使用图片的分享链接失效后的又一办法)

    本文源链接:https://blog.csdn.net/zuliang001/article/details/83066441 问题 在有道云笔记软件里直接分享图片后的链接是: http://note ...

  5. 有道云笔记markdown上传本地图片的方法

    有道云笔记markdown上传本地图片的方法   有道云笔记markdown模式非会员发现不能直接截屏粘贴图片了.后来网上搜集了下方法,发现了好几种解决办法.   当然,如果你一年,不差那两百块钱,直 ...

  6. 有道云笔记MarkDown插入图片

    有道云笔记MarkDown插入图片 </h1><div class="clear"></div><div class="post ...

  7. 有道云笔记Markdown编辑器 基础操作使用说明

    有道云笔记Markdown编辑器 基础操作使用说明 本文将按左往右的顺序介绍有道云笔记Markdown各图形按键的对应功能及编辑时的语法键入,分模块说明. 模块简介 模块一有五个键,主要用于文字处理 ...

  8. 有道云笔记 - Markdown模板(文首附markdown源码,即.md文件)

    有道云笔记 - Markdown模板 附 本文的Markdown源码镜像: https://github.com/yanglr/AlgoSolutions/blob/master/Youdao_Not ...

  9. php搭建markdown云笔记_【简明版】有道云笔记Markdown指南 | 有道云笔记官方博客...

    什么是Markdown?Markdown是一种轻量级的「标记语言」,通常为程序员群体所用,目前它已是全球最大的技术分享网站 GitHub 和技术问答网站 StackOverFlow 的御用书写格式. ...

  10. 有道云 语法高亮_有道云笔记Markdown怎么用 有道云笔记Markdown简明版使用指南

    有道云笔记Markdown版是一款内置Markdown编辑器的有道云笔记客户端,方便用户使用有道云笔记的时候调用Markdown编辑器,越是强大的软件,功能越多,特此小编特意为大家带来了有道云笔记Ma ...

最新文章

  1. Java学习总结:24
  2. sqllite java 密码,SQLite登录检查用户名和密码
  3. -bash: composer: command not found解决办法
  4. elupload获取文件名与路径_Python检查word文件中的特殊“标记”词是否与文件名中的一致(实例59)...
  5. JavaScript中的 in 操作符
  6. 为什么有些程序员明明很努力,但是却回报很低,收益很小,工资始终上不去-出自中华石杉老师
  7. 局域网即时通讯软件_做企业即时通讯软件,我们是认真的
  8. python 两幅图片融合成一张图片
  9. JavaScript 销毁对象
  10. android方向传感器 指南针,Android如何实现电子罗盘(指南针)方向传感器的应用
  11. 德家:你知道吗?朋友圈里的微商传销正在疯狂蔓延
  12. 【转】常见蓝屏错误信息
  13. python数据分析之pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
  14. 【NLP】中文分词:原理及分词算法
  15. qrc文件的使用方法
  16. 中小型研发团队架构实践三要点
  17. 《JavaScript网页特效经典300例》
  18. Activiti流程设计工具
  19. 解析:type t_string is table of varchar2(32767) index by binary_integer
  20. 机器人命题的真伪(1)

热门文章

  1. 苹果平板计算机音乐,iphone、ipad上传照片、视频、音乐到电脑中 手机电脑互传文件...
  2. html化学式编辑器,常用的化学式编辑器有哪些?4款化学式编辑器分享
  3. 计算机信息管理不会电脑,不要抱怨网速慢.只怪你不会调网速★让你的电脑一点都不卡...
  4. PS2手柄通讯协议解析---附资料和源码
  5. 百度深度学习工程师认证(已通过)
  6. WorkNC编程软件配套英格索尔高速铣刀帮助奥迪加工
  7. matlab besselh,关于用matlab求bessel函数零点
  8. Sublime常用快捷键
  9. java生成随机数组_Java 生成随机数
  10. java sqlldr_sqlldr详解