Hexo 靜態博客在寫作時如果需要引入圖片,則需要將圖片放置到網站目錄下,這樣一來當我們需要刪除文章時,圖片無法被刪除,此時我們可以通過獲取頁面中所有圖片的鏈接,並依此將這些鏈接對應的本地文件刪除即可,實現代碼如下。
此處我使用的主題是Next主題。
其中del_image(pi)
用戶傳入圖片的名字,則該函數拼接到絕對路徑並對其進行刪除,在主函數get_image_page()
中需傳入需要刪除文章地址。
from urllib import request,parse
from bs4 import BeautifulSoup
import os,sys,re
def get_image_page(url):
pic = []
req = request.Request(url=url,method="GET")
respon = request.urlopen(req,timeout=3)
html = respon.read().decode("utf-8")
soup = BeautifulSoup(html,'html.parser')
rs = soup.select('div[class="post-body"] p img')
for i in rs:
image = re.sub("/picture/","",i.attrs['src'])
pic.append(image)
return pic
def del_image(pi):
path = "E:/MyBlog/source/picture/"
path += pi
os.remove(str(path))
print("刪除圖片: {}".format(path))
if __name__ == "__main__":
page = get_image_page("http://lyshark.cnblogs.com/post/97f1.html")
for each in page:
del_image(each)