最近仿站,发现目标站图片非常多,也就想通过Python来实现下载目标站图片和替换源代码对应路径,具体实现代码如下:
from urllib import request # 引用urllib模块 import re #自定义urlretrieve中的回调函数实现下载图片进度条功能 def fun(blocknum,blocksize,totalsize): """ blocknum:当前的块编号 blocksize:每次传输的块大小 totalsize:网页文件总大小 """ percent = blocknum*blocksize/totalsize if percent > 1.0: percent = 1.0 percent = percent*100 print("download : %.2f%%" %(percent)) with open('getimg.html','rb') as html_obj: html=html_obj.read() html=html.decode('utf-8') reg1 = r'src=("|\')(.+?\.jpg)\1' pattern1 = re.compile(reg1) imglist1 = pattern1.findall(html) for i in imglist1: print(i[1]) getimg=i[1] #判断图片是否以//开通,是则添加上http协议头 if(i[1].startswith('//')): getimg='http:'+getimg filename=getimg[getimg.rfind("/") + 1:] #request.urlretrieve实现图片保存到本地 if request.urlretrieve(getimg, 'D:\\img\\'+filename,fun): #保存成功则替换html代码中的文件名 html = html.replace(i[1], '/tools/style/img/'+filename) #保存替换后的html代码 with open("getimg_new.html",'w') as f: f.write(html)
最终运行及替换效果
如果本文对你有帮助,欢迎打赏本站