Python中实现网页代码图片下载及保存

最近仿站,发现目标站图片非常多,也就想通过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)

最终运行及替换效果

image.png

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

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

喜欢 ()or分享