• python2的代码从吉卜力网页上下载高清图片


    python2

    + 修改基础存储路径

    + 给map里面添加源url和存储文件夹,k-v对。

    # -*- coding: utf-8 -*-
    import re
    import urllib
    import urllib2
    import os
    
    
    # 抓取网页图片
    # 根据给定的网址来获取网页详细信息,得到的html就是网页的源代码
    def getHtml(url):
        page = urllib.urlopen(url)
        html = page.read()
        return html
    
    
    def saveImages(imglist, storeFilePath):
        number = 1
        for imageURL in imglist:
            splitPath = imageURL.split('//')
            wwwUrl = splitPath.pop()
            splitPath2 = wwwUrl.split('/')
            picName = splitPath2.pop()
            fileName = storeFilePath + picName
            
            # 对于每张图片地址,进行保存
            try:
                u = urllib2.urlopen(imageURL)
                data = u.read()
                f = open(fileName, 'wb+')
                f.write(data)
                print '正在保存的一张图片:', fileName
                f.close()
            except urllib2.URLError as e:
                print(e.reason)
            number += 1
        # 获取网页中所有图片的地址
    
    
    def getAllImg(html):
        # 利用正则表达式把源代码中的图片地址过滤出来
        reg = r'href="(.+?.jpg)"'
        # https://www.ghibli.jp/gallery/thumb-laputa001.png
        imgre = re.compile(reg)
        imglist = imgre.findall(html)  # 表示在整个网页中过滤出所有图片的地址,放在imglist中
        return imglist
    
    
    # 创建本地保存文件夹,并下载保存图片
    if __name__ == '__main__':
        
        baseFilePath = '/Users/shaopengyang/pic/'
        map = { "https://www.ghibli.jp/works/umi/#frame":'umi',
                "https://www.ghibli.jp/works/majo/#frame":'majo',
                "https://www.ghibli.jp/works/howl/#frame":'howl'}
        for url, filePath in map.items():
            html = getHtml(url)
            imgList = getAllImg(html)
            # 判断存储路径是否存在
            isExists = os.path.exists(baseFilePath + filePath + '/')
            if not isExists:
                os.makedirs(baseFilePath + filePath + '/')
            
            saveImages(imgList, baseFilePath + filePath + '/')
    

      

  • 相关阅读:
    第11条:用zip函数同时遍历两个迭代器
    第10条:尽量用enumerate取代range
    第9条:用生成器表达式来改写数据量较大的列表推导式
    MySQL的约束
    VMware下所有的系统网卡启动不起来
    windows下的mysql闪退问题
    大型网站架构模式
    MySQL的information_schema库
    mysql复制表结构和内容
    希尔排序 堆排序 归并排序
  • 原文地址:https://www.cnblogs.com/yspworld/p/14324144.html
Copyright © 2020-2023  润新知