最近仿站,发现目标站图片非常多,也就想通过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)最终运行及替换效果

如果本文对你有帮助,欢迎打赏本站

支付宝扫码打赏
微信扫码打赏
