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/) 做笔记建议还是在本地存储,图床一旦故障,损失不可估量 haoxiaohao 发表于 2022-4-4 22:33
经历过gitee白嫖图床失败我放弃了图床,全部本地管理了
Gitee和Github都反对仓库图床化,仓库里图片很多就容易凉凉。 经历过gitee白嫖图床失败我放弃了图床,全部本地管理了{:301_972:} 有没有网址? 图床?还是自己存储保险,一旦出现问题,损失那是叫一个can qqpoly 发表于 2022-4-5 09:07
图床?还是自己存储保险,一旦出现问题,损失那是叫一个can
都用图床啦,当然是存的些无关紧要的咯。 hxiang 发表于 2022-4-5 00:21
有没有网址?
文中有链接的,md语法。路过图床字样就是 谢谢分享! 知心 发表于 2022-4-4 22:17
做笔记建议还是在本地存储,图床一旦故障,损失不可估量
本地也有备份噢。只是一些无关紧要的上传到图床加速访问顺便减少空间啦
页:
[1]
2