• python多媒体文件抽取


    多文件抽取有:只获取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:远程文件的大小

  • 相关阅读:
    PHP NG (PHP 5.7) 性能比 PHP 5.6 提升近 1 倍
    PHP移动互联网开发笔记(3)——运算符
    利用PHP生成二维码
    几款常用的PHP模板引擎
    PHP多线程的使用
    关于程序员失眠的解决方案
    PHP移动互联网开发笔记(5)——文件的上传下载
    PHP生成二维码【谷歌API+qrcode+圆角Logo】
    7种流行PHP集成开发工具(IDE)的比较
    封装
  • 原文地址:https://www.cnblogs.com/guguobao/p/9521157.html
Copyright © 2020-2023  润新知