解析 CSS 里面的图片 URL,并批量下载

解析 CSS 里面的图片 URL,并批量下载

比如获取 CSS 文件里面的 background-image: url(../images/tree-line.png);../images/tree-line.png,将其组装为 https://www.123.com/images/tree-line.png 并下载

实现

import re
import urllib
import urllib.request


def main():
    with open('./style.css', encoding='utf-8') as f:
        css = f.read()
        # url(../images/52.png)
        image_list = re.findall(r"url\((.+?)\)", css)
        for i in image_list:
            # print(i)
            image_url = i.replace("../", base_url)
            # image_url = base_url + i
            file_name = image_url.split("/")[-1]
            print(image_url, file_name)
            get_image(image_url, file_name)


# 解析 CSS 文件图片,并批量下载
def get_image(url, name):
    try:
        req = urllib.request.Request(url)
        res = urllib.request.urlopen(req)
        get_img = res.read()
        with open(file_path + name, 'wb') as fp:
            fp.write(get_img)
            fp.close()
            print(file_path + name + '下载完成')
    except:
        print('访问异常!')


if __name__ == "__main__":
    base_url = "https://www.123.com/images/"
    file_path = 'D:\\images\\'
    main()

posted @ 2020-08-07 17:36  to人间值得  阅读(229)  评论(0)    收藏  举报