EchoY 发表于 2022-4-4 22:01

python+Selenium=免费自动博客图床工具

# 伪自动图床工具

markdown写博客里面的图片老是让我头疼。直接拉到GitHub上奇奇怪怪的,又慢不过。免费的图床api接口又找不到好用的,白嫖的总是容易失效。

[路过图床](https://imgtu.com/)用着不错。免费不跑路。但一次只让我上次一张,还得自己去复制url粘贴到md文件,不太优雅。

我一直用的是HbuilderX编辑我的博客文章,图片可以直接复制粘贴到md文档。在目录下会生成一个文件夹,存储这些图片。

![](https://s1.ax1x.com/2022/03/29/q6X80O.jpg)

就想着用python+Selenium库能不能写一个自动化脚本。

自动上传文件夹下所有图片,拿到链接。替换掉md文件内路径。

## 理论存在,实践开始

```
import os
import re
import time
from selenium import webdriver

def post_img(path):
    Brower = webdriver.Chrome("E:\百分浏览器\chromedriver.exe") # 浏览器内核驱动路径
    Brower.get('https://imgtu.com/')
    time.sleep(3)# 延时操作
    Brower.find_element_by_id('anywhere-upload-input').send_keys(path)
    time.sleep(2)# 延时操作
    button='document.querySelector("#anywhere-upload-submit > div:nth-child(1) > button").click()'
    Brower.execute_script(button)
    time.sleep(6)
    html=Brower.page_source
    jpg=re.findall(r'image_src" href="(.+?)">',html)
    Brower.close()# 关闭浏览器
    print("已完成:%s"%jpg)
    return jpg

def alter(file,old_str,new_str):
with open(file, "r", encoding="utf-8") as f1,open("%s.bak" % file, "w", encoding="utf-8") as f2:
    for line in f1:
      if old_str in line:
      line = line.replace(old_str, new_str)
      f2.write(line)
os.remove(file)
os.rename("%s.bak" % file, file)


folder_name = os.listdir("G:\\blog\source\_posts2\OCR_img_files") # 图片文件夹路径
for i in range(len(folder_name)):
    data_name = "OCR_img_files/" + folder_name # md文档内路径的前缀
    post_path = "G:\\blog\source\_posts2\\"+data_name.replace("/", "\\") # 将文件夹内路径中的/转换一下

    alter("G:\\blog\source\_posts2\OCR_img.md", data_name, post_img(post_path)) # md文档绝对路径,会替换掉md文档内路径
```

也算是学习一下`Selenium`库,里面也没啥高深的逻辑。

单纯的拿到文件,上传,拿到url,回传替换。

![](https://s1.ax1x.com/2022/03/29/q6jP4H.jpg)

跑代码的话需要注意安装好Selenium驱动和库,还有后面的文件夹路径,文件路径。

[更优雅的阅读体验](http://blog.nrhs.tk/2022/03/20/IMG-Bed/)

知心 发表于 2022-4-4 22:17

做笔记建议还是在本地存储,图床一旦故障,损失不可估量

EchoY 发表于 2022-4-5 09:49

haoxiaohao 发表于 2022-4-4 22:33
经历过gitee白嫖图床失败我放弃了图床,全部本地管理了

Gitee和Github都反对仓库图床化,仓库里图片很多就容易凉凉。

haoxiaohao 发表于 2022-4-4 22:33

经历过gitee白嫖图床失败我放弃了图床,全部本地管理了{:301_972:}

hxiang 发表于 2022-4-5 00:21

有没有网址?

qqpoly 发表于 2022-4-5 09:07

图床?还是自己存储保险,一旦出现问题,损失那是叫一个can

EchoY 发表于 2022-4-5 09:47

qqpoly 发表于 2022-4-5 09:07
图床?还是自己存储保险,一旦出现问题,损失那是叫一个can

都用图床啦,当然是存的些无关紧要的咯。

EchoY 发表于 2022-4-5 09:47

hxiang 发表于 2022-4-5 00:21
有没有网址?

文中有链接的,md语法。路过图床字样就是

zm55555 发表于 2022-4-5 09:48

谢谢分享!

EchoY 发表于 2022-4-5 09:50

知心 发表于 2022-4-4 22:17
做笔记建议还是在本地存储,图床一旦故障,损失不可估量

本地也有备份噢。只是一些无关紧要的上传到图床加速访问顺便减少空间啦
页: [1] 2
查看完整版本: python+Selenium=免费自动博客图床工具