當前位置: 首頁>>代碼示例>>Python>>正文


Python urllib.parse方法代碼示例

本文整理匯總了Python中setuptools.extern.six.moves.urllib.parse方法的典型用法代碼示例。如果您正苦於以下問題:Python urllib.parse方法的具體用法?Python urllib.parse怎麽用?Python urllib.parse使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在setuptools.extern.six.moves.urllib的用法示例。


在下文中一共展示了urllib.parse方法的11個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: find_external_links

# 需要導入模塊: from setuptools.extern.six.moves import urllib [as 別名]
# 或者: from setuptools.extern.six.moves.urllib import parse [as 別名]
def find_external_links(url, page):
    """Find rel="homepage" and rel="download" links in `page`, yielding URLs"""

    for match in REL.finditer(page):
        tag, rel = match.groups()
        rels = set(map(str.strip, rel.lower().split(',')))
        if 'homepage' in rels or 'download' in rels:
            for match in HREF.finditer(tag):
                yield urllib.parse.urljoin(url, htmldecode(match.group(1)))

    for tag in ("<th>Home Page", "<th>Download URL"):
        pos = page.find(tag)
        if pos!=-1:
            match = HREF.search(page,pos)
            if match:
                yield urllib.parse.urljoin(url, htmldecode(match.group(1))) 
開發者ID:jpush,項目名稱:jbox,代碼行數:18,代碼來源:package_index.py

示例2: _download_svn

# 需要導入模塊: from setuptools.extern.six.moves import urllib [as 別名]
# 或者: from setuptools.extern.six.moves.urllib import parse [as 別名]
def _download_svn(self, url, filename):
        url = url.split('#',1)[0]   # remove any fragment for svn's sake
        creds = ''
        if url.lower().startswith('svn:') and '@' in url:
            scheme, netloc, path, p, q, f = urllib.parse.urlparse(url)
            if not netloc and path.startswith('//') and '/' in path[2:]:
                netloc, path = path[2:].split('/',1)
                auth, host = splituser(netloc)
                if auth:
                    if ':' in auth:
                        user, pw = auth.split(':',1)
                        creds = " --username=%s --password=%s" % (user, pw)
                    else:
                        creds = " --username="+auth
                    netloc = host
                    parts = scheme, netloc, url, p, q, f
                    url = urllib.parse.urlunparse(parts)
        self.info("Doing subversion checkout from %s to %s", url, filename)
        os.system("svn checkout%s -q %s %s" % (creds, url, filename))
        return filename 
開發者ID:jpush,項目名稱:jbox,代碼行數:22,代碼來源:package_index.py

示例3: _vcs_split_rev_from_url

# 需要導入模塊: from setuptools.extern.six.moves import urllib [as 別名]
# 或者: from setuptools.extern.six.moves.urllib import parse [as 別名]
def _vcs_split_rev_from_url(url, pop_prefix=False):
        scheme, netloc, path, query, frag = urllib.parse.urlsplit(url)

        scheme = scheme.split('+', 1)[-1]

        # Some fragment identification fails
        path = path.split('#',1)[0]

        rev = None
        if '@' in path:
            path, rev = path.rsplit('@', 1)

        # Also, discard fragment
        url = urllib.parse.urlunsplit((scheme, netloc, path, query, ''))

        return url, rev 
開發者ID:jpush,項目名稱:jbox,代碼行數:18,代碼來源:package_index.py

示例4: _encode_auth

# 需要導入模塊: from setuptools.extern.six.moves import urllib [as 別名]
# 或者: from setuptools.extern.six.moves.urllib import parse [as 別名]
def _encode_auth(auth):
    """
    A function compatible with Python 2.3-3.3 that will encode
    auth from a URL suitable for an HTTP header.
    >>> str(_encode_auth('username%3Apassword'))
    'dXNlcm5hbWU6cGFzc3dvcmQ='

    Long auth strings should not cause a newline to be inserted.
    >>> long_auth = 'username:' + 'password'*10
    >>> chr(10) in str(_encode_auth(long_auth))
    False
    """
    auth_s = urllib.parse.unquote(auth)
    # convert to bytes
    auth_bytes = auth_s.encode()
    # use the legacy interface for Python 2.3 support
    encoded_bytes = base64.encodestring(auth_bytes)
    # convert back to a string
    encoded = encoded_bytes.decode()
    # strip the trailing carriage return
    return encoded.replace('\n','') 
開發者ID:jpush,項目名稱:jbox,代碼行數:23,代碼來源:package_index.py

示例5: find_external_links

# 需要導入模塊: from setuptools.extern.six.moves import urllib [as 別名]
# 或者: from setuptools.extern.six.moves.urllib import parse [as 別名]
def find_external_links(url, page):
    """Find rel="homepage" and rel="download" links in `page`, yielding URLs"""

    for match in REL.finditer(page):
        tag, rel = match.groups()
        rels = set(map(str.strip, rel.lower().split(',')))
        if 'homepage' in rels or 'download' in rels:
            for match in HREF.finditer(tag):
                yield urllib.parse.urljoin(url, htmldecode(match.group(1)))

    for tag in ("<th>Home Page", "<th>Download URL"):
        pos = page.find(tag)
        if pos != -1:
            match = HREF.search(page, pos)
            if match:
                yield urllib.parse.urljoin(url, htmldecode(match.group(1))) 
開發者ID:sofia-netsurv,項目名稱:python-netsurv,代碼行數:18,代碼來源:package_index.py

示例6: _download_svn

# 需要導入模塊: from setuptools.extern.six.moves import urllib [as 別名]
# 或者: from setuptools.extern.six.moves.urllib import parse [as 別名]
def _download_svn(self, url, filename):
        url = url.split('#', 1)[0]  # remove any fragment for svn's sake
        creds = ''
        if url.lower().startswith('svn:') and '@' in url:
            scheme, netloc, path, p, q, f = urllib.parse.urlparse(url)
            if not netloc and path.startswith('//') and '/' in path[2:]:
                netloc, path = path[2:].split('/', 1)
                auth, host = splituser(netloc)
                if auth:
                    if ':' in auth:
                        user, pw = auth.split(':', 1)
                        creds = " --username=%s --password=%s" % (user, pw)
                    else:
                        creds = " --username=" + auth
                    netloc = host
                    parts = scheme, netloc, url, p, q, f
                    url = urllib.parse.urlunparse(parts)
        self.info("Doing subversion checkout from %s to %s", url, filename)
        os.system("svn checkout%s -q %s %s" % (creds, url, filename))
        return filename 
開發者ID:sofia-netsurv,項目名稱:python-netsurv,代碼行數:22,代碼來源:package_index.py

示例7: _vcs_split_rev_from_url

# 需要導入模塊: from setuptools.extern.six.moves import urllib [as 別名]
# 或者: from setuptools.extern.six.moves.urllib import parse [as 別名]
def _vcs_split_rev_from_url(url, pop_prefix=False):
        scheme, netloc, path, query, frag = urllib.parse.urlsplit(url)

        scheme = scheme.split('+', 1)[-1]

        # Some fragment identification fails
        path = path.split('#', 1)[0]

        rev = None
        if '@' in path:
            path, rev = path.rsplit('@', 1)

        # Also, discard fragment
        url = urllib.parse.urlunsplit((scheme, netloc, path, query, ''))

        return url, rev 
開發者ID:sofia-netsurv,項目名稱:python-netsurv,代碼行數:18,代碼來源:package_index.py

示例8: _encode_auth

# 需要導入模塊: from setuptools.extern.six.moves import urllib [as 別名]
# 或者: from setuptools.extern.six.moves.urllib import parse [as 別名]
def _encode_auth(auth):
    """
    A function compatible with Python 2.3-3.3 that will encode
    auth from a URL suitable for an HTTP header.
    >>> str(_encode_auth('username%3Apassword'))
    'dXNlcm5hbWU6cGFzc3dvcmQ='

    Long auth strings should not cause a newline to be inserted.
    >>> long_auth = 'username:' + 'password'*10
    >>> chr(10) in str(_encode_auth(long_auth))
    False
    """
    auth_s = urllib.parse.unquote(auth)
    # convert to bytes
    auth_bytes = auth_s.encode()
    # use the legacy interface for Python 2.3 support
    encoded_bytes = base64.encodestring(auth_bytes)
    # convert back to a string
    encoded = encoded_bytes.decode()
    # strip the trailing carriage return
    return encoded.replace('\n', '') 
開發者ID:sofia-netsurv,項目名稱:python-netsurv,代碼行數:23,代碼來源:package_index.py

示例9: _download_svn

# 需要導入模塊: from setuptools.extern.six.moves import urllib [as 別名]
# 或者: from setuptools.extern.six.moves.urllib import parse [as 別名]
def _download_svn(self, url, filename):
        url = url.split('#', 1)[0]   # remove any fragment for svn's sake
        creds = ''
        if url.lower().startswith('svn:') and '@' in url:
            scheme, netloc, path, p, q, f = urllib.parse.urlparse(url)
            if not netloc and path.startswith('//') and '/' in path[2:]:
                netloc, path = path[2:].split('/', 1)
                auth, host = splituser(netloc)
                if auth:
                    if ':' in auth:
                        user, pw = auth.split(':', 1)
                        creds = " --username=%s --password=%s" % (user, pw)
                    else:
                        creds = " --username=" + auth
                    netloc = host
                    parts = scheme, netloc, url, p, q, f
                    url = urllib.parse.urlunparse(parts)
        self.info("Doing subversion checkout from %s to %s", url, filename)
        os.system("svn checkout%s -q %s %s" % (creds, url, filename))
        return filename 
開發者ID:awemulya,項目名稱:kobo-predict,代碼行數:22,代碼來源:package_index.py

示例10: egg_info_for_url

# 需要導入模塊: from setuptools.extern.six.moves import urllib [as 別名]
# 或者: from setuptools.extern.six.moves.urllib import parse [as 別名]
def egg_info_for_url(url):
    parts = urllib.parse.urlparse(url)
    scheme, server, path, parameters, query, fragment = parts
    base = urllib.parse.unquote(path.split('/')[-1])
    if server=='sourceforge.net' and base=='download':    # XXX Yuck
        base = urllib.parse.unquote(path.split('/')[-2])
    if '#' in base: base, fragment = base.split('#',1)
    return base,fragment 
開發者ID:jpush,項目名稱:jbox,代碼行數:10,代碼來源:package_index.py

示例11: from_url

# 需要導入模塊: from setuptools.extern.six.moves import urllib [as 別名]
# 或者: from setuptools.extern.six.moves.urllib import parse [as 別名]
def from_url(cls, url):
        "Construct a (possibly null) ContentChecker from a URL"
        fragment = urllib.parse.urlparse(url)[-1]
        if not fragment:
            return ContentChecker()
        match = cls.pattern.search(fragment)
        if not match:
            return ContentChecker()
        return cls(**match.groupdict()) 
開發者ID:jpush,項目名稱:jbox,代碼行數:11,代碼來源:package_index.py


注:本文中的setuptools.extern.six.moves.urllib.parse方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。