腾讯微博半死不活的挺了一年,终于自己承认不再运营了,好在他还给了备份的接口。提供邮箱就能把微博内容打包发到你的邮箱,但有个问题是,所有的图片还在腾讯的服务器上。这个还是不放心,肯定过一阵还得把这些图片也删除掉。自己用python,写了个图片下载和替换的小工具。运行环境python3.8。实际测试成功。附上代码。(另:如果自己不会备份可以找我5元一次https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.2e6d1debKOtjnX&ft=t&id=628449345004)
# coding:utf-8
import numpy as np
import urllib.request
from urllib.request import urlretrieve
import re
import datetime
from dateutil.relativedelta import relativedelta
import random
import cv2
import os,stat
#根据URL下载文件,并返回本地文件名
def request_download(imgurl):
#{
#处理后图片文件位置
return_ImageFileName = "images/";
newWblogpath_ImagePaht = "NewWBlog/";
imgfilename = str(random.randint(10000,99999));
imgfilename += ".png";
return_ImageFileName += imgfilename;
imgfilename = newWblogpath_ImagePaht + return_ImageFileName;
urlretrieve(imgurl, imgfilename);
return return_ImageFileName;
#}
if __name__ == '__main__':
#{
#处理后文件位置
newWblogpath = "./NewWBlog/";
#处理后图片文件位置
newWblogpath_ImagePaht = "./NewWBlog/images/";
#原来的文件名
oldWblogFile = "./Backup_of_Tencent_Weibo.html";
#判断要处理的文件是否存在
if not os.path.exists(oldWblogFile):
print("weiBlog file is not exiting,fail!");
#文件大小
fsize = 0;
#创建文件夹
if not os.path.exists(newWblogpath):
os.makedirs(newWblogpath);
#创建图片文件夹
if not os.path.exists(newWblogpath_ImagePaht):
os.makedirs(newWblogpath_ImagePaht);
#获取文件大小
fsize = os.path.getsize(oldWblogFile);
#打开并读取文件
fblog = open(oldWblogFile,"r",encoding='utf8');
strHtml = fblog.read(fsize);
fblog.close();
#正则表达式,要取出图片的URL
imgurl = r'<img src="(.+?)"';
#编译一下
reg_imgurl = re.compile(imgurl);
urlimgList = reg_imgurl.findall(strHtml)#进行匹配
for imgurl in urlimgList:
#{
try:
#{
#下载图片,并得到地址
newimageurl = request_download(imgurl);
#}
except IOError:
print(imgurl + "没有下载成功,请手动替换");
else:
#替换掉哦图片地址
strHtml =strHtml.replace(imgurl,newimageurl);
#}
newWblogfile = newWblogpath + "index.html";
fblog = open(newWblogfile,"w",encoding='utf8');
fblog.write(strHtml);
fblog.close();
#}