• python学习笔记(17)urllib.parse模块使用


    url.parse :定义了url的标准接口,实现url的各种抽取
    parse模块的使用:url的解析,合并,编码,解码
    使用时需导入

    from urllib import parse

    urlparse()实现URL的识别和分段
    url = 'https://book.qidian.com/info/1004608738?wd=123&page=20#Catalog'
    """
    url:待解析的url
    scheme='':假如解析的url没有协议,可以设置默认的协议,如果url有协议,设置此参数无效
    allow_fragments=True:是否忽略锚点,默认为True表示不忽略,为False表示忽略
    """
    result = parse.urlparse(url=url,scheme='http',allow_fragments=True)
    
    print(result)
    print(result.scheme)
    """
    (scheme='https', netloc='book.qidian.com', path='/info/1004608738', params='', query='wd=123&page=20', fragment='Catalog')
    scheme:表示协议
    netloc:域名
    path:路径
    params:参数
    query:查询条件,一般都是get请求的url
    fragment:锚点,用于直接定位页
    面的下拉位置,跳转到网页的指定位置
    """

    urlunparse()可以实现URL的构造

    url_parmas = ('https', 'book.qidian.com', '/info/1004608738', '', 'wd=123&page=20', 'Catalog')
    #components:是一个可迭代对象,长度必须为6
    result = parse.urlunparse(url_parmas)
    print(result)
    
    """
    https://book.qidian.com/info/1004608738?wd=123&page=20#Catalog
    ""

    urljoin()传递一个基础链接,根据基础链接可以将某一个不完整的链接拼接为一个完整链接

    base_url = 'https://book.qidian.com/info/1004608738?wd=123&page=20#Catalog'
    sub_url = '/info/100861102'
    
    full_url = parse.urljoin(base_url,sub_url)
    
    print(full_url)

    urlencode()将字典构形式的参数序列化为url编码后的字符串(常用来构造get请求和post请求的参数)k1=v1&k2=v2

    parmas = {
        'wd':'123',
        'page':20
    }
    parmas_str = parse.urlencode(parmas)
    
    print(parmas_str)
    
    """
    page=20&wd=123
    """
    
    parse_qs()将url编码格式的参数反序列化为字典类型
    parmas_str = 'page=20&wd=123'
    parmas = parse.parse_qs(parmas_str)
    print(parmas)
    
    """
    {'page': ['20'], 'wd': ['123']}
    """

    quote()可以将中文转换为URL编码格式

    word = '中国梦'
    url = 'http://www.baidu.com/s?wd='+parse.quote(word)
    print(parse.quote(word))
    print(url)
    
    """
    %E4%B8%AD%E5%9B%BD%E6%A2%A6
    http://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD%E6%A2%A6
    """
    unquote:可以将URL编码进行解码
    url = 'http://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD%E6%A2%A6'
    print(parse.unquote(url))
    """
    http://www.baidu.com/s?wd=中国梦
    """
  • 相关阅读:
    Cortex-M3 在C中上报入栈的寄存器和各fault状态寄存器
    Cortex-M3 双堆栈指针(MSP&PSP)
    Cortex-M3 异常返回值EXC_RETURN
    Cortex-M3 异常中断响应与返回
    Cortex-M3 操作模式与特权等级
    Cortex-M3 R0~R15寄存器组 & 特殊功能寄存器组
    【Python】批量修改指定目录下所有文件的文件名/后缀
    【EMV L2】EMV终端数据
    【EMV L2】Cardholder Verification Rule(CVR) Format
    【EMV L2】GPO响应以及AIP、AFL
  • 原文地址:https://www.cnblogs.com/wuzm/p/11655035.html
Copyright © 2020-2023  润新知