伪自动图床工具
markdown写博客里面的图片老是让我头疼。直接拉到GitHub上奇奇怪怪的,又慢不过。免费的图床api接口又找不到好用的,白嫖的总是容易失效。
路过图床用着不错。免费不跑路。但一次只让我上次一张,还得自己去复制url粘贴到md文件,不太优雅。
我一直用的是HbuilderX编辑我的博客文章,图片可以直接复制粘贴到md文档。在目录下会生成一个文件夹,存储这些图片。
就想着用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[0])
return jpg[0]
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[i] # 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,回传替换。
跑代码的话需要注意安装好Selenium驱动和库,还有后面的文件夹路径,文件路径。
更优雅的阅读体验
|