最近在学习爬虫,在爬取网站时很多时候是需要将图片或视频下载到本地 今天就来说说如何使用urllib将图片保存到本地

以下代码均为win7  python3.6.*

 使用urllib下载函数保存

from urllib import request  

# 要下载的图片链接地址
img_url = 'https://imgsa.baidu.com/forum/w%3D580/sign=adc0a68a97504fc2a25fb00dd5dfe7f0/873df8dcd100baa14fff6d394b10b912c9fc2e64.jpg'
#url为图片下载链接
request.urlretrieve(url=img_url,'./baidu/1.jpg')

使用urllib文件方式写入文件

from urllib import request

#要下载的链接地址
img_url = 'https://imgsa.baidu.com/forum/w%3D580/sign=adc0a68a97504fc2a25fb00dd5dfe7f0/873df8dcd100baa14fff6d394b10b912c9fc2e64.jpg'
# 文件的方式保存下载的图片
response = request.urlopen(img_url)
#读取返回的内容
img = response.read()
with open('baidu/1.jpg','wb') as f:
    #将图片内容以二进制写入
    f.write(img)

使用urllib的下载函数下载视频并输出下载进度

from urllib import request

base_url = 'https://f.us.sinaimg.cn/001KhC86lx07laEy0PtC01040200y8vC0k010.mp4?label=mp4_hd&template=640x360.28&Expires=1528689591&ssig=qhWun5Mago&KID=unistore,video'
#下载进度函数
def report(a,b,c):
    '''
    a:已经下载的数据块
    b:数据块的大小
    c:远程文件的大小
    '''
    per = 100.0 * a * b / c
    if per > 100:
        per = 100
    print ('%.2f%%' % per)
#使用下载函数下载视频并调用进度函数输出下载进度
request.urlretrieve(url=base_url,finename='weibo/1.mp4',reporthook=report,data=None)

说明:

  • 参数 finename 指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)

  • 参数 reporthook 是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。

  • 参数 data 指 post 到服务器的数据,该方法返回一个包含两个元素的(filename, headers)元组,filename 表示保存到本地的路径,header 表示服务器的响应头。

Python 下载超大文件

Python 下载超大文件链接

如有错误 欢迎交流

python实现文件下载图片视频的更多相关文章

  1. 10个有趣的Python教程,附视频讲解+练手项目。

    从前的日色变得慢,车.马.邮件都慢 一生只够爱一门编程语言 从前的教程也好看,画面精美有样子 你看了,立马就懂了 Python最性感的地方,就在于它的趣味性和前沿性,学习Python,你总能像科技节的 ...

  2. bs4 & 二进制写入图片视频

    适用于:数据都在网页源代码上,可以直接从中提取到对应数据 例子:北京新发地网 原理:拿到页面源代码的文本,交给BeautifulSoup解析,然后找到对应的标签,获取值 关键词:BeautifulSo ...

  3. 使用图片视频展示插件blueimp Gallery改造网站的视频图片展示

    在很多情况下,我们网站可能会展示我们的产品图片.以及教程视频等内容,结合一个比较好的图片.视频展示插件,能够使得我们的站点更加方便使用,也更加酷炫,在Github上有很多相关的处理插件可以找来使用,有 ...

  4. python 将png图片格式转换生成gif动画

    先看知乎上面的一个连接 用Python写过哪些[脑洞大开]的小工具? https://www.zhihu.com/question/33646570/answer/157806339 这个哥们通过爬气 ...

  5. 基于OpenCv和swing的图片/视频展示Java实现

    基于OpenCv和swing实现图片/视频的展示 图片的展示 swing展示图片,多为操作BufferedImage,这里要关注的核心是将Mat转为BufferedImage. 代码如下: publi ...

  6. Python人工智能之图片识别,Python3一行代码实现图片文字识别

    1.Python人工智能之图片识别,Python3一行代码实现图片文字识别 2.tesseract-ocr安装包和中文语言包 注意:

  7. 可嵌入图片视频jQuery全屏滑块

    分享一款可嵌入图片视频jQuery全屏滑块.这是一款可定制的滑块幻灯片代码,支持键盘箭头切换.效果图如下: 在线预览   源码下载 实现的代码. html代码:     <script type ...

  8. Python批量修改图片格式和尺寸

    Python批量修改图片格式和尺寸 备注: 1.导入了PIL库,是处理图片用的,很强大; 2.导入了的win32库,是判断隐藏文件用的,我们的项目需要删除隐藏文件,不需要的可以直接找到删除. 3.导入 ...

  9. python实现文件下载的方法总结

    前端时间遇到一个通过url下载文件的需求,只需要简单的编写一个py脚本即可.从网上搜了下python实现文件下载的方法,总结如下,备查. 以下方法均已测试,环境win8.1  python2.6/2. ...

随机推荐

  1. 2018面向对象程序设计(Java)第9周学习指导及要求

    2018面向对象程序设计(Java)第9周学习指导及要求(2018.10.25-2018.10.28)   学习目标 1.掌握java异常处理技术: 2.了解断言的用法: 3.了解日志的用途: 4.掌 ...

  2. 大型运输行业实战_day14_1_webserivce简单入门

    1.简单使用 1.1.服务端 1.编写接口 package com.day02.sation.ws; /** * Created by Administrator on 1/12. */ public ...

  3. editplus设置自动换行方法 editplus自动换行设置步骤

    原文链接:https://www.jb51.net/softjc/165897.html 发布时间:2014-05-14 17:03:54   作者:佚名    我要评论 editplus自动换行设置 ...

  4. Android Studio 2.3.3上引入3.0上开发的项目遇到的问题

    dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) debugImplementation project( ...

  5. Feign Hystrix

    1.Feign整合Hystrix 添加依赖 编写接口与实现回退 1.1.调用者引入依赖 <!-- Feign --> <dependency> <groupId>o ...

  6. 【pyspider】初次使用pyspider遇到的问题

    <python爬虫开发与项目实践>里最后一章介绍了pyspider的使用.然鹅..我刚开始就报错了: Exception: HTTP 599: SSL certificate proble ...

  7. 第二章 向量(d1)有序向量:唯一化

  8. 图片Bitmap在本地的存储与读取 File

    将Bitmap存储到本地: public void SaveImage(Bitmap image, String user_id){ //照片通常存在DCIM文件夹中 String sdCardDir ...

  9. 模板】AC自动机(简单版)

    模板]AC自动机(简单版) https://www.luogu.org/problemnew/show/P3808 这是一道简单的AC自动机模板题. 用于检测正确性以及算法常数. 为了防止卡OJ,在保 ...

  10. linux同步机制2

    一.并发控制(1)自旋锁得不到资源,会原地打转,直到获得资源为止定义自旋锁 spinlock_t spin;初始化自旋锁 spin_lock_init(lock);获得自旋锁spin_lock(loc ...