Python gets function code sharing for remote file sizes

  • 2020-04-02 13:38:26
  • OfStack


def getRemoteFileSize(url, proxy=None):
    """  through content-length Header gets the remote file size 
        url -  The target file URL
        proxy -  The agent   """
    opener = urllib2.build_opener()
    if proxy:
        if url.lower().startswith('https://'):
            opener.add_handler(urllib2.ProxyHandler({'https' : proxy}))
        else:
            opener.add_handler(urllib2.ProxyHandler({'http' : proxy}))
    try:
        request = urllib2.Request(url)
        request.get_method = lambda: 'HEAD'
        response = opener.open(request)
        response.read()
    except Exception, e: #  The remote file does not exist         
        return 0
    else:
        fileSize = dict(response.headers).get('content-length', 0)
        return int(fileSize)

Related articles: