您好,欢迎光临seo营销公司网站,我们提供seo营销排名推广优化渠道、网络seo营销优化网站。

seo营销公司网站

专注于seo营销公司网站seo营销排名推广优化平台

全网通用的markdown文章图床实现与图片盗链解决方案!

作者:jcmp      发布时间:2021-04-25      浏览量:0
一、博客图床与盗链上周主要的时间,都用在

一、博客图床与盗链

上周主要的时间,都用在搭建个人博客上。个人一直是在简书平台上使用markdown发文,在这次的博客文章迁移中,遇到了很多坑,其中最为麻烦的就是文章的图床盗链问题。

现在绝大多数的网站都做了反盗链的防护,导致从简书导出的文章,图片链接全部失效,使我基本处在崩溃边缘。几百张的历史博客图文,难道要一点点搬迁吗?答案当然是否定的,最终通过爬虫的方式解决了600张图片的迁移,并完成博客的正常发布与展示。喜欢的朋友可以去我的博客逛逛。

我的个人博客: https://qingfengpython.cn。

还不了解如何搭建个人博客的朋友,可以看看我上一篇文章:

今天,就为大家介绍一下,全网通用的markdown文章,图床搭建、迁移方案与代码实现!

二、markdown插入图片

随着越来越多的人开始使用markdown写作,在对markdown的语法简洁高效而欢喜的同时,却对markdown的图片展示而发愁。如何在markdown中插入图片,相信已经成为很多人的苦恼所在。来看看这篇文章的阅读量就知道了,只是几百字的文章,发文两年阅读量45万。

那么今天,就教大家如何彻底解决markdown图床问题,并且针对已经在其他平台发布过的markdown文章,给出通用的反盗链图片迁移方式。

三、markdown图片语法

在markdown中,针对图片的语法格式为:

![图片链接文字](图片路径)![image-20201227231002749](https://gitee.com/BreezePython/blogimages/raw/master/images/image-20201227231002749.png)![清风Python](https://gitee.com/BreezePython/blogimages/raw/master/images/31d6706e483911eb9a5a002b67682234.png)。

其中图片链接的url,可以是url的链接方式,也可以是保存在本地的目录方式。那么,不管是针对本地的图片还是之前在其他网站,使用网站床图上传的历史图片,我们都可以通过今天的文章来实现自己的床图搭建!

四、个人床图实现方案

网上那些床图工具七牛云等等,始终不是自己,今天就来教大家完成个人床图的搭建。

首先,我们需要创建一个git仓库,github、或者码云都可以。(推荐后者,访问速度快....)。

上次在给大家介绍博客搭建时,模拟创建了一个BlogTest的仓库,其实本人自用的是Blog仓库以及搭配的blogimages仓库。

申请好仓库后,我们在仓库下创建一个images文件夹,上传一张图片,然后开始分析仓库的url,码云和github基本类似:

大家可以看到,仓库下存储的图片url,和图片展示的url,存在一定的切换逻辑。码云上只是将tree改为了raw,github变更的稍微多一些,但都有迹可循。

那么,我们的图床就可以通过往仓库上传图片的方式来实现了!

五、本地图床实现

本人日常编写markdown,都是使用 Typora 工具,这里就不多介绍了截个图吧,简单几个字来形容: 用过都说好!

那么,关于本地markdown图传实现方式,我就介绍通过Typora的操作来实现。

六、历史图片爬虫迁移

笔者在简书,存在200多篇的历史博文,所有文章共计涉及到将近600张图片的迁移,如果手动操作,我需要:

如果这么手动操作,给我一个月都弄不完,估计最终电脑都可能比我气得摔了。所以手动操作自然是行不通的,那么如果通过代码来实现呢?只要50行,连编码,带迁移,半个小时的时间足够了。来说说具体实现吧....

其实代码只是把上面的手工操作,使用文件读写、正则匹配、爬虫下载的方式实现而已,其中比较绕的就是正则了,有一句话这么说:

七、正则遇到的坑

首先,通过正则判断哪些是图片,这个还算比较简单:

re.compile('!\[.*\]\(https://.*(png|jpg|gif)')。

比对markdown的格式,叹号开头、中括号包含图片说明、小括号涵盖url链接。ok吗?看着没问题,然后第一次迁移发现只有200多张图片....错在哪里?

解决了这个问题,我又遇到了新的情况:

![文章被锁定](https://upload-images.jianshu.io/upload_images/5847426-00e191420386f54c.gif?imageMogr2/auto-orient/strip)。

简书的url链接是上面这样的,我在下载后,需要进一步的匹配判断问号等情况的匹配。

图片下载好后,我们需要使用uuid库,为我们的图片创建唯一识别码。当然你也可以向Typora那样使用毫秒级别的时间戳,看个人爱好。

最终代码如下:

最终,572张历史markdown图片迁移成功

最后的最后,把本地仓库下的图片一股脑上传到码云、github上即可。

上面的代码适配了例外路径和文件,针对码云仓库拿来即用,只需要简单修改下你的本次仓库、目录和url前缀即可!

八、个人博客的重要性

之前的文章已经强调过了,坚持写博客不论是对知识积累巩固与面试加分上都占有举足轻重的地位,个人博客的免费搭建、历史博文的迁移、日常markdown博客的床图,这些都帮大家捋顺了,你还有什么理由不开始坚持学习与总结呢?

今天的文章就到这里,码字不易,觉得有收获还望点赞支持。好东西要用来分享,欢迎转发文章给你身边同样需要它的朋友。

九、结束语