美文网首页
urllib中parse模块的使用

urllib中parse模块的使用

作者: 常伟波 | 来源:发表于2018-11-05 20:02 被阅读0次

    urlparse:定义了url的标准接口,实现url的各种抽取

    import urllib.parse as parse
    url = 'https://www.baidu.com/s?ie=utf-8&tn=baidu&wd=%E7%BE%8E%E5%A5%B3#a'
    result = parse.urlparse(url)
    print(result)
    print(result.scheme)
    
        # scheme:表示协议
        # netloc:域名
        # path:路径
        # params:参数
        # query:查询条件,一般都是get请求的url
        # fragment:锚点,用于直接定位页面的下拉位置,跳转到网页的指定位置
    
        # urlparse的其他参数:
        # urlstring:这是必填项,待解析的url
        # scheme:默认的协议(http或者是https,假如要解析的连接没有带协议那么我们可以设置这个为默认的协议)
        # all_fragments:是否忽略锚点,如果忽略的话会被解析为path或者是query的一部分(就近原则,跟谁近就属于谁)
    

    urlunparse:与上面的方法相反,是构造一个url

    # 注意参数的格式必须符合上面的打印规则,如果没有对应的部分那么就直接设置为空字符串
    # (scheme='https', netloc='www.baidu.com', path='/s', params='', query='ie=utf-8&tn=baidu&wd=%E7%BE%8E%E5%A5%B3', fragment='a')
    urls = ('https','www.baidu.com','s','','ie=utf-8&tn=baidu&wd=%E7%BE%8E%E5%A5%B3','')
    full_url = parse.urlunparse(urls)
    print(full_url
    

    urljoin:这个方法是完成连接的合并,不过全体是得有特定的长度

    # 我们可以提供一个基类的baseurl
    # 然后再提供一个不完整的url这时候实现url的评接
    #使用场景见(猫眼电影网)
    base_url = 'https://www.baidu.com/index.html'
    son_url = 'baidu/index.html'
    fullurl = parse.urljoin(base_url,son_url)
    print(fullurl)
    

    urlencode():将字典形式的参数序列化为url的编码格式k1=v1&k2=v2

    data = {
    'name':'liwenhao',
    'password':'123456'
    }
    data = parse.urlencode(data).encode('UTF-8')
    print(data)
    

    parse_qs:方法是将url的编码格式反序列化为字典类型

    data_dict = parse.parse_qs(data)
    print(data_dict)
    for k,v in data_dict.items():
        print(k.decode('UTF-8'))
        print(v[0].decode('UTF-8')) 
    

    quote:可以将中文参数转换为URL编码的格式

    url = 'https://www.baidu.com/s?wd=' + parse.quote('美女')
    url = parse.unquote(url)
    print(url)
    

    unquote:对url进行解码

    url = 'https://www.baidu.com/s?wd=%E8%B1%86%E7%93%A3'
    
    url = parse.unquote(url)
    print(url)

    相关文章

      网友评论

          本文标题:urllib中parse模块的使用

          本文链接:https://www.haomeiwen.com/subject/hjlexqtx.html