zoukankan      html  css  js  c++  java
  • webpy:页面下载的三种实现方式

    python:

    1、import urllib

    urlretrieve() 方法直接将远程数据下载到本地。

    >>> help(urllib.urlretrieve)
    Help on function urlretrieve in module urllib:

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

      1. 参数 finename 指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)
      2. 参数 reporthook 是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。
      3. 参数 data 指 post 到服务器的数据,该方法返回一个包含两个元素的(filename, headers)元组,filename 表示保存到本地的路径,header 表示服务器的响应头。
    import urllib
    def cbk(a, b, c): 
        '''回调函数
        @a: 已经下载的数据块
        @b: 数据块的大小
        @c: 远程文件的大小
        ''' 
        per = 100.0 * a * b / c 
        if per > 100: 
            per = 100 
        print '%.2f%%' % per
     
    url = 'http://www.google.com'
    local = 'd://google.html'
    urllib.urlretrieve(url, local, cbk)

    这个例子将 google 的 html 抓取到本地,保存在D:/google.html 文件中,同时显示下载的进度。缺点在于,不能适用于传送较大的文件

    2、import urllib2

    用write()的方式把文件写存为一个文件,缺点在于,无法修改保存的默认地址,只能够存在linux下的默认路径

    urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件。他以urlopen函数的形式提供了一个非常简单的接口,这是具有利用不同协议获取URLs的能力,他同样提供了一个比较复杂的接口来处理一般情况,例如:基础验证,cookies,代理和其他。

    urllib2支持获取不同格式的URLs(在URL的":"前定义的字串,例如:"ftp"是"ftp:python.ort/"的前缀),它们利用它们相关网络协议(例如FTP,HTTP)

         import urllib2

    fileurl_tmp
    = "http://www.blog.pythonlibrary.org/wp-content/uploads/2012/06/wxDbViewer.zip" filename_tmp = fileurl_tmp.split("/")[-1] filepath_tmp = os.path.join("d:\\",str(filename_tmp)) #urllib.urlretrieve(fileurl_tmp,filepath_tmp) #z = DownloadFile(fileurl_tmp,filepath_tmp) f= urllib2.urlopen(fileurl_tmp) data = f.read() with open("demo2.zip", "wb") as code: code.write(data)

     

     

    JS:

    直接访问URL的方式,读取文件。

    在<a>标签中添加herf="url"

    或者在script语句中使用ie自带的控件:window.location.href = "url";

     

  • 相关阅读:
    PHP webserver 之 soap wsdl
    PHP webserver 之 soap 生成wsdl文件
    PHP webserver 之 soap non-wsdl
    CodeForces 729A Interview with Oleg (模拟)
    CodeForces 727A Transformation: from A to B (DFS)
    POJ 3111 K Best (二分)
    POJ 2456 Aggressive cows (二分)
    POJ 1064 Cable master(二分)
    POJ
    Codeforces 869B
  • 原文地址:https://www.cnblogs.com/blitheG/p/5302032.html
Copyright © 2011-2022 走看看