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 + '/')

  

 

posted @ 2021-01-25 11:08  我喜欢旅行  阅读(92)  评论(0编辑  收藏  举报