美文网首页大数据 爬虫Python AI Sql
Python笔记——下载图片的两种方法

Python笔记——下载图片的两种方法

作者: 振礼硕晨 | 来源:发表于2018-10-06 22:12 被阅读4次

    第一种:使用urllib.request库中的urlretrieve方法

    1.示例代码:
    from urllib.request import urlretrieve      # 引入库
    url = 'http://pic1.win4000.com/wallpaper/2017-10-31/59f82773524ee.jpg'      # 要下载的图片的地址
    urlretrieve(url, './girl.jpg')  # 保存到本地,并设置路径
    
    2.方法详解

    urllib模块提供的urlretrieve()函数,可直接将远程数据下载到本地,语法格式如下:

    urlretrieve(url, filename=None, reporthook=None, data=None)
    
    • 参数url是要下载数据的地址
    • 参数filename指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据)
    • 参数reporthook是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度
    • 参数data指post导服务器的数据,该方法返回一个包含两个元素的(filename, headers) 元组,filename 表示保存到本地的路径,header表示服务器的响应头

    第二种:请求图片的流数据,写入到本地文件,完成下载

    1.示例代码:
    import requests  # 引入相关库
    
    url = 'http://pic1.win4000.com/wallpaper/2017-10-31/59f82773524ee.jpg'  # 要下载的图片的地址
    
    r = requests.get(url)  # 请求图片的数据
    
    # 将图片的流数据写入到girl_2.jpg文件中
    with open('./girl_2.jpg', 'wb') as img:
        img.write(r.content)
    
    2.方法详解

    无论是图片还是.mp3、.mp4,.revb等文件,他们在网络上传输的时候,都是采用编码后的流数据,我们将这些流数据请求下来,然后写入到对应的文件中,就相当于把这些文件下载下来。

    在本例中,我们使用reques.get()方法可以得到Response对象r,然后使用r.content就可以获取r编码后的流数据。将其写入到girl_2.jpg,就可以成功将该图片下载到本地。

    这是简单的将网络上的图片下载到本地的方法,你可以在这个基础之上进行扩展,比如下载小说、电影等文件。
    或者是对下载的图片进行处理,保存到本地特定的文件夹或给出更有规律的命名。
    发挥你的创意开始进行创作吧。

    相关文章

      网友评论

        本文标题:Python笔记——下载图片的两种方法

        本文链接:https://www.haomeiwen.com/subject/neoloftx.html