多文件抽取有:只获取url,或直接下载,下面是怎么将数据下载下来,并显示进度。

本节主要介绍urllib模块提供的urlretrieve()函数。urlretrieve()方法直接将远程数据下载到本地,函数模型:

  • urlretrieve(url, filename-None, reporthook=None, data=None)

    • 参数filename指定了存储的本地路径
    • 参数reporthook是一个回调函数。当连接上服务器以及相应的数据块传输完毕时会触发该回调函数,我们可以利用这个回调函数来显示当前进度。
    • 参数data指的是post到服务器的数据,该方法返回一个包含两个元素的(filename,headers)元组,filename表示保存本地的路径,header表示服务器响应头

下面举例代码

#coding:utf-8

import urllib
from lxml import etree
import requests
def Schedule(blocknum,blocksize,totalsize):
'''''
blocknum:已经下载的数据块
blocksize:数据块的大小
totalsize:远程文件的大小
'''
per = 100.0 * blocknum * blocksize / totalsize
if per > 100 :
per = 100
print '当前下载进度:%d'%per
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers={'User-Agent':user_agent}
r = requests.get('http://www.ivsky.com/tupian/ziranfengguang/',headers=headers)
#使用lxml解析网页
html = etree.HTML(r.text)
img_urls = html.xpath('.//img/@src')#先找到所有的img
i=0
for img_url in img_urls:
urllib.urlretrieve(img_url,'img'+str(i)+'.jpg',Schedule)
i+=1

Schedule函数包含3个参数: blocknum:已经下载的数据块, blocksize:数据块的大小, totalsize:远程文件的大小

python多媒体文件抽取的更多相关文章

  1. python网络爬虫(8)多媒体文件抽取

    目的 批量下载网页图片 导入库 urllib中的request中的urlretrieve方法,可以下载图片 lxml用于解析网页 requests用于获取网站信息 import urllib from ...

  2. Python虚拟机之for循环控制流(二)

    Python虚拟机中的for循环控制流 在Python虚拟机之if控制流(一)这一章中,我们了解if控制流的字节码实现,在if控制结构中,虽然Python虚拟机会在不同的分支摇摆,但大体还是向前执行, ...

  3. 《python解释器源码剖析》第11章--python虚拟机中的控制流

    11.0 序 在上一章中,我们剖析了python虚拟机中的一般表达式的实现.在剖析一遍表达式是我们的流程都是从上往下顺序执行的,在执行的过程中没有任何变化.但是显然这是不够的,因为怎么能没有流程控制呢 ...

  4. 小白数据分析——Python职位全链路分析

    最近在做Python职位分析的项目,做这件事的背景是因为接触Python这么久,还没有对Python职位有一个全貌的了解.所以想通过本次分析了解Python相关的职位有哪些.在不同城市的需求量有何差异 ...

  5. Caffe 抽取CNN网络特征 Python

    Caffe Python特征抽取 转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ Caffe大家一般用到的深度学 ...

  6. 随手小代码——Python 从集合中随机抽取元素

    =================================版权声明================================= 版权声明:原创文章 谢绝转载  请通过右侧公告中的“联系邮 ...

  7. [Spark][Python][DataFrame][RDD]DataFrame中抽取RDD例子

    [Spark][Python][DataFrame][RDD]DataFrame中抽取RDD例子 sqlContext = HiveContext(sc) peopleDF = sqlContext. ...

  8. 借助python工具从word文件中抽取相关表的定义,最后组装建表语句-非常好

    借助python工具从word文件中抽取表的定义,最后组装建表语句-非常好 --如有转载请以超链接的方式注明原文章出处,谢谢大家.请尊重每一位乐于分享的原创者 1.python脚本 ## -*- co ...

  9. Python with语句和__enter__、__exit__过程抽取思想

    with语句的应用场景   编程中有很多操作都是配套使用的,这种配套的流程可以称为计算过程,Python语言为这种计算过程专门设计了一种结构:with语句.比如文件处理就是这类计算过程的典型代表. 使 ...

随机推荐

  1. 第八章 watch监听 85 computed-计算属性的使用和3个特点

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  2. CSS如何水平垂直居中?

    CSS如何水平垂直居中? 1.CSS如何实现水平居中? margin: 0 auto 2.CSS如何实现水平垂直居中? 首先设置一个div元素,设置背景颜色以便看出变化.代码如下: <!DOCT ...

  3. Alpha版本

    这个作业属于哪个课程 [课程链接][ https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/] 这个作业要求在哪里 [作业要求][ ...

  4. Tomcat管理页面

    下面就是 Manager的界面: Server Status 上面个两个配置任意一个配置好了后,都可以启用Server Status的GUI界面:

  5. pssh一个微量级自动化工具

    一.pssh简介 pssh是一个python编写可以在多台服务器上执行命令的工具,也可实现文件复制.pssh需要通过ssh的key验证来管理主机,其不能很好的支持密码验证.用过epel源的pssh包来 ...

  6. k8sSecret资源

    Secret资源的功能类似于ConfigMap,但它专用于存放敏感数据,如密码.数字证书.私钥.令牌和ssh key等. 一.概述 Secret对象存储数据以键值方式存储数据,再pod资源中通过环境变 ...

  7. java中的排列组合

    使用之前需要声明一个Combine的对象,调用startCombile方法,可返回想要的组合数或者个数,参数介绍很重要 public class Combine { private Object[] ...

  8. Python基础之Python语言类型

    编程语言主要从以下几个角度进行分类: 编译型和解释型 静态语言和动态语言 强类型定义语言和弱类型定义语言 编译和解释的区别是什么? 编译器把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样 ...

  9. LightGBM GPU python版本安装

    失败的安装尝试 1.官方Guide https://lightgbm.readthedocs.io/en/latest/GPU-Windows.html 生成在windows下可执行的exe程序,但是 ...

  10. LeetCode 82. 删除排序链表中的重复元素 II(Remove Duplicates from Sorted List II)

    题目描述 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5 输出: ...