当前位置: 首页>>代码示例>>Python>>正文


Python urllib.unwrap函数代码示例

本文整理汇总了Python中urllib.unwrap函数的典型用法代码示例。如果您正苦于以下问题:Python unwrap函数的具体用法?Python unwrap怎么用?Python unwrap使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了unwrap函数的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: open

 def open(self, fullurl, data=None, method=None):
     """Use URLopener().open(file) instead of open(file, 'r')."""
     fullurl = unwrap(toBytes(fullurl))
     # percent encode url, fixing lame server errors for e.g, like space
     # within url paths.
     fullurl = quote(fullurl, safe="%/:=&?~#+!$,;'@()*[]|")
     if self.tempcache and fullurl in self.tempcache:
         filename, headers = self.tempcache[fullurl]
         fp = open(filename, 'rb')
         return addinfourl(fp, headers, fullurl)
     urltype, url = splittype(fullurl)
     if not urltype:
         urltype = 'file'
     if urltype in self.proxies:
         proxy = self.proxies[urltype]
         urltype, proxyhost = splittype(proxy)
         host, selector = splithost(proxyhost)
         url = (host, fullurl) # Signal special case to open_*()
     else:
         proxy = None
     name = 'open_' + urltype
     self.type = urltype
     name = name.replace('-', '_')
     if not hasattr(self, name):
         if proxy:
             return self.open_unknown_proxy(proxy, fullurl, data)
         else:
             return self.open_unknown(fullurl, data)
     try:
         return getattr(self, name)(url, data, method)
     except socket.error, msg:
         raise IOError, ('socket error', msg), sys.exc_info()[2]
开发者ID:croot,项目名称:buster-bot,代码行数:32,代码来源:opener.py

示例2: retrieve

def retrieve(self, url, filename=None, reporthook=None, data=None,
             maxtries=5, r_range=None):
    """retrieve(url) returns (filename, headers) for a local object
    or (tempfilename, headers) for a remote object.
    If it fails, it relaunches itself until the dl is complete or
    maxtries == 0 (maxtries == -1 for unlimited tries).
    Range tuple(start, end) indicates the range of the remote object
    we have to retrieve (ignored for local files)"""
 
    if maxtries < -1:
        raise ValueError, 'maxtries must be at least equal with -1'
 
    url = unwrap(toBytes(url))
 
    if self.tempcache and url in self.tempcache:
        return self.tempcache[url]
 
    type, url1 = splittype(url)
 
    if filename is None and (not type or type == 'file'):
        try:
            fp = self.open_local_file(url1)
            hdrs = fp.info()
            fp.close()
 
            return url2pathname(splithost(url1)[1]), hdrs
        except IOError, msg:
            pass
开发者ID:mulx,项目名称:POL4Dev_Historical,代码行数:28,代码来源:retrieve.py

示例3: __init__

 def __init__(self, url, data=None, headers={}):
     # unwrap('<URL:type://host/path>') --> 'type://host/path'
     self.__original = unwrap(url)
     self.type = None
     # self.__r_type is what's left after doing the splittype
     self.host = None
     self.port = None
     self.data = data
     self.headers = {}
     self.headers.update(headers)
开发者ID:paulgay,项目名称:crf_dia_ident,代码行数:10,代码来源:urllib2.py

示例4: __init__

 def __init__(self, url, data=None, headers={}):
     # unwrap('<URL:type://host/path>') --> 'type://host/path'
     self.__original = unwrap(url)
     self.type = None
     # self.__r_type is what's left after doing the splittype
     self.host = None
     self.port = None
     self.data = data
     self.headers = {}
     for key, value in headers.items():
         self.add_header(key, value)
开发者ID:OS2World,项目名称:APP-INTERNET-torpak_2,代码行数:11,代码来源:urllib2.py

示例5: retrieve_resume

    def retrieve_resume(self, url, filename, reporthook=None, data=None):
        """retrieve_resume(url) returns (filename, headers) for a local object
        or (tempfilename, headers) for a remote object.
        The filename argument is REQUIRED (no tempfile creation code here!)
        Additionally resumes a download if the local filename exists"""

        current_size = 0
        tfp = None
        if os.path.exists(filename):
            try:
                current_size = os.path.getsize(filename)
                tfp = open(filename, 'ab')
                #If the file exists, then only download the remainder
                self.addheader('Range', 'bytes=%s-' % (current_size))
            except:
                log('Cannot open file for resuming: %s', filename, sender=self, traceback=True)
                tfp = None
                current_size = 0

        if tfp is None:
            tfp = open(filename, 'wb')

        url = urllib.unwrap(urllib.toBytes(url))
        fp = self.open(url, data)
        headers = fp.info()
        result = filename, headers
        bs = 1024*8
        size = -1
        read = current_size
        blocknum = int(current_size/bs)
        if reporthook:
            if "content-length" in headers:
                size = int(headers["Content-Length"]) + current_size
            reporthook(blocknum, bs, size)
        while 1:
            block = fp.read(bs)
            if block == "":
                break
            read += len(block)
            tfp.write(block)
            blocknum += 1
            if reporthook:
                reporthook(blocknum, bs, size)
        fp.close()
        tfp.close()
        del fp
        del tfp

        # raise exception if actual size does not match content-length header
        if size >= 0 and read < size:
            raise urllib.ContentTooShortError("retrieval incomplete: got only %i out "
                                       "of %i bytes" % (read, size), result)

        return result
开发者ID:directeur,项目名称:sugoi,代码行数:54,代码来源:downloader.py

示例6: retrieve

 def retrieve(self, url, filename=None, reporthook=None, blocksize=262144):
     url = urllib.unwrap(url)
     if self.tempcache and self.tempcache.has_key(url):
         return self.tempcache[url]
     type, url1 = urllib.splittype(url)
     if not filename and (not type or type == 'file'):
         try:
             fp = self.open_local_file(url1)
             hdrs = fp.info()
             del fp
             return url2pathname(urllib.splithost(url1)[1]), hdrs
         except IOError, msg:
             pass
开发者ID:AZed,项目名称:uvcdat,代码行数:13,代码来源:cdurllib.py

示例7: retrieve

 def retrieve(self, url, filename=None, reporthook=None, data=None):
     """retrieve(url) returns (filename, headers) for a local object
     or (tempfilename, headers) for a remote object."""
     url = urllib.unwrap(urllib.toBytes(url))
     if self.tempcache and url in self.tempcache:
         return self.tempcache[url]
     type, url1 = urllib.splittype(url)
     if filename is None and (not type or type == 'file'):
         try:
             fp = self.open_local_file(url1)
             hdrs = fp.info()
             del fp
             return urllib.url2pathname(urllib.splithost(url1)[1]), hdrs
         except IOError, msg:
             pass
开发者ID:Ingwar,项目名称:amuse,代码行数:15,代码来源:download_svn.py

示例8: __init__

 def __init__(self, url, data=None, headers={}, origin_req_host=None, unverifiable=False):
     # unwrap('<URL:type://host/path>') --> 'type://host/path'
     self.__original = unwrap(url)
     self.type = None
     # self.__r_type is what's left after doing the splittype
     self.host = None
     self.port = None
     self.data = data
     self.headers = {}
     for key, value in headers.items():
         self.add_header(key, value)
     self.unredirected_hdrs = {}
     if origin_req_host is None:
         origin_req_host = cookielib.request_host(self)
     self.origin_req_host = origin_req_host
     self.unverifiable = unverifiable
开发者ID:BackupTheBerlios,项目名称:pyasynchio-svn,代码行数:16,代码来源:urllib2.py

示例9: __init__

    def __init__(self, url, data = None, headers = {}, origin_req_host = None, unverifiable = False):
        self.__original = unwrap(url)
        self.__original, fragment = splittag(self.__original)
        self.type = None
        self.host = None
        self.port = None
        self._tunnel_host = None
        self.data = data
        self.headers = {}
        for key, value in headers.items():
            self.add_header(key, value)

        self.unredirected_hdrs = {}
        if origin_req_host is None:
            origin_req_host = request_host(self)
        self.origin_req_host = origin_req_host
        self.unverifiable = unverifiable
开发者ID:connoryang,项目名称:dec-eve-serenity,代码行数:17,代码来源:urllib2.py

示例10: __init__

    def __init__(self, url, data = None, headers = {},
                 origin_req_host = None, unverifiable = False,
                 method = None, follow_redirects = True,
                 on_redirect = None, accumulate_body = True,
                 adjust_headers = True):

        self.adjust_headers = adjust_headers
        self._original = urllib.unwrap(url)

        util.Events.EventMixin.__init__(self)
        urllib2.Request.__init__(self, url, data, headers, origin_req_host, unverifiable)
        self.follow_redirects = follow_redirects
        self._method = method
        self.headers = HTTPHeaders(self.headers)
        self.unredirected_hdrs = HTTPHeaders(self.unredirected_hdrs)

        self.redirect_cb = on_redirect
        self.callback = None
        self.accumulate_body = accumulate_body

        self.redirected = False
开发者ID:AlexUlrich,项目名称:digsby,代码行数:21,代码来源:httptypes.py

示例11: retrieve_resume

    def retrieve_resume(self, url, filename, reporthook=None, data=None):
        """Download files from an URL; return (headers, real_url)

        Resumes a download if the local filename exists and
        the server supports download resuming.
        """

        current_size = 0
        tfp = None
        if os.path.exists(filename):
            try:
                current_size = os.path.getsize(filename)
                tfp = open(filename, 'ab')
                #If the file exists, then only download the remainder
                if current_size > 0:
                    self.addheader('Range', 'bytes=%s-' % (current_size))
            except:
                logger.warn('Cannot resume download: %s', filename, exc_info=True)
                tfp = None
                current_size = 0

        if tfp is None:
            tfp = open(filename, 'wb')

        # Fix a problem with bad URLs that are not encoded correctly (bug 549)
        url = url.decode('ascii', 'ignore')
        url = url.translate(self.ESCAPE_CHARS)
        url = url.encode('ascii')

        url = urllib.unwrap(urllib.toBytes(url))
        fp = self.open(url, data)
        headers = fp.info()

        if current_size > 0:
            # We told the server to resume - see if she agrees
            # See RFC2616 (206 Partial Content + Section 14.16)
            # XXX check status code here, too...
            range = ContentRange.parse(headers.get('content-range', ''))
            if range is None or range.start != current_size:
                # Ok, that did not work. Reset the download
                # TODO: seek and truncate if content-range differs from request
                tfp.close()
                tfp = open(filename, 'wb')
                current_size = 0
                logger.warn('Cannot resume: Invalid Content-Range (RFC2616).')

        result = headers, fp.geturl()
        bs = 1024*8
        size = -1
        read = current_size
        blocknum = int(current_size/bs)
        if reporthook:
            if "content-length" in headers:
                size = int(headers.getrawheader("Content-Length"))  + current_size
            reporthook(blocknum, bs, size)
        while read < size or size == -1:
            if size == -1:
                block = fp.read(bs)
            else:
                block = fp.read(min(size-read, bs))
            if block == "":
                break
            read += len(block)
            tfp.write(block)
            blocknum += 1
            if reporthook:
                reporthook(blocknum, bs, size)
        fp.close()
        tfp.close()
        del fp
        del tfp

        # raise exception if actual size does not match content-length header
        if size >= 0 and read < size:
            raise urllib.ContentTooShortError("retrieval incomplete: got only %i out "
                                       "of %i bytes" % (read, size), result)

        return result
开发者ID:fk-lx,项目名称:gpodder,代码行数:78,代码来源:download.py

示例12: test_unwrap

 def test_unwrap(self):
     url = urllib.unwrap('<URL:type://host/path>')
     self.assertEqual(url, 'type://host/path')
开发者ID:Kelauni22,项目名称:Meeple,代码行数:3,代码来源:test_urllib.py

示例13: __init__

 def __init__(self, response):
     self._next = None
     link, params = parse_header(response.headers.get('link', ''))
     if params.get('rel','').strip('"\'') == 'next':
         self._next = unwrap(link)
开发者ID:monkeython,项目名称:pypsum,代码行数:5,代码来源:client.py

示例14:

"""An extensible library for opening URLs using a variety of protocols
开发者ID:mcyril,项目名称:ravel-ftn,代码行数:1,代码来源:urllib2.py


注:本文中的urllib.unwrap函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。