zoukankan      html  css  js  c++  java
  • python3中的urllib.parse的常用方法

    将URL按一定的格式进行拆分

    • 使用 urllib.parse.urlparse将url分为6个部分,返回一个包含6个字符串项目的元组:协议、位置、路径、参数、查询、片段

    参照官方地址:https://docs.python.org/3/library/urllib.parse.html

    import urllib.parse
    #urlparse将url分为6个部分
    url ="https://i.cnblogs.com/EditPosts.aspx?opt=1"
    url1 = "cheme://netloc/path;parameters?query#fragment"
    url_change = urllib.parse.urlparse(url)
    print(url_change)

    输出结果为:

    ParseResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', params='', query='opt=1', fragment='')

    其中 scheme 是协议  netloc 是域名服务器  path 相对路径  params是参数,query是查询的条件

    • 使用  urllib.parse.urlsplit 将url分为5个部分,返回一个包含字符串项目的元组:协议、位置、路径、查询、片段
    1 import urllib.parse
    2 #urlsplit将url分为5个部分
    3 url ="https://i.cnblogs.com/EditPosts.aspx?opt=1"
    4 url_change = urllib.parse.urlsplit(url)
    5 print(url_change)

    输出结果为:

    ParseResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx',query='opt=1', fragment='')

    其中 scheme 是协议  netloc 是域名服务器  path 相对路径 ,query是查询的条件

    对URL按照一定的规格进行拼接

    • 使用 urllib.parse.urljoin将相对的一个地址组合成一个url,对于输入没有限制,开头必须是http://或者https://,否则将不组合前面的部分。
    1 import urllib.parse
    2 host = "https://127.0.0.1"
    3 #host ="127.0.0.1"
    4 port = "8888"
    5 new_url = urllib.parse.urljoin(host,port)
    6 print(new_url)

    输出结果为:

      https://127.0.0.1/8888

    如果  host ="127.0.0.1",则输出的只是:  8888

    parse_qs 有几种实现

    • urllib.parse.parse_qs 返回字典
    • urllib.parse.parse_qsl 返回列表
    import urllib.parse
    #urlparse将url分为6个部分
    url ="https://i.cnblogs.com/EditPosts.aspx?opt=1"
    url_change = urllib.parse.urlparse(url) # 将url拆分为6个部分
    query = url_change.query #取出拆分后6个部分中的查询模块query
    lst_query = urllib.parse.parse_qsl(query)  #使用parse_qsl返回列表
    dict1 =dict(lst_query)  #将返回的列表转换为字典
    dict_query =urllib.parse.parse_qs(query)  #使用parse_qs返回字典
    print("使用parse_qsl返回列表  :",lst_query)
    print("将返回的列表转换为字典 :",dict1)
    print("使用parse_qs返回字典   : ",dict_query)
    
    # data = "test=test&test2=test2&test2=test3"
    # print(urllib.parse.parse_qsl(data)) #返回列表
    # print(urllib.parse.parse_qs(data))  #返回字典
  • 相关阅读:
    Python
    保护模式(九):挂物理页
    保护模式(八):MmIsAddressValid逆向(PAE)
    保护模式(七):2-9-9-12分页
    保护模式(六):10-10-12分页(二)
    保护模式(五):10-10-12分页(一)
    保护模式(四):任务段与任务门
    保护模式(三):中断门与陷阱门
    保护模式(二):调用门
    保护模式(一):段描述符与段选择子
  • 原文地址:https://www.cnblogs.com/fanjc/p/9910292.html
Copyright © 2011-2022 走看看