开发者

python中的urlparse()方法使用

开发者 https://www.devze.com 2023-11-19 13:21 出处:网络 作者: 码奋
目录python urlparse()方法python urlsplit, urlparse简单区别区别代码示例总结python urlparse()方法
目录
  • python urlparse()方法
  • python urlsplit, urlparse简单区别
    • 区别
    • 代码示例
  • 总结

    python urlparse()方法

    该方法实现url的识别和分段,这里先用一个实例来看一下

    from urllib.parse import urlparse
     
    result=urlparse('http://www.baidu.com/index.html;user?id=5#comment')
    print(type(result),result)

    这里我们用urlparse()方法进行了URL的解析,首先,输出解析结果类型,再将结果也输出

    如下:

    <class 'urllib.parse.ParseResult'> 
    ParseResult(scheme='http', netloc='www.baidu.com', path='/index.html', params='user', query='id=5', fragment='comment')

    观察实例,'http://www.baidu.com/index.html;user?id=5#comment'

    可以发现,urlparse()方法将其拆分为6个部分,分别是

    scheme='http',代表协议
    
    netloc='www.baidu.com',代表域名
    
    path='/ihttp://www.devze.comndex.html', 代表path,即访问路径
    
    params='user', 代表参数
    
    query='id=5', 代表查询条件,一般用作get类型的URL
    
    fragmenthttp://www.devze.com='comment'代表锚点,用于直接定位页面内部的下拉位置,

    所以一个标准的链接应该是

    scheme://netloc/path;params?query#fragment

    接下来讲述其API用法

     urllib.parse.urlparse(urlstring,scheme='',allow_fragmeandroidnts=True)
    • urlstring:必填项,即待解析的url
    • scheme:它的默认协议(比如http,https等)
    • allow_fragments:即是否忽略fragment,如果它被设为False,fragment部分会被忽略,它会被解析为path、params、query的一部分,而fragment为空

    python urlsplit, urlparse简单区别

    顾名思义,urlsplit是拆分,而urlparse是解析,所以urlparse粒度更为细致

    区别

    split函数在分割的时候,path和params属性是在一起的

    代码示例

    # -*- phpcoding: utf-8 -*-
    
    from urllib.parse import urlsplit, urlparse
    
    url = "https://username:password@www.baidu.com:80/index.html;parameters?name=tom#example"
    
    print(urlsplit(url))
    """
    SplitResult(
        scheme='https', 
        netloc='username:passwjavascriptord@www.baidu.com:80', 
        path='/index.html;parameters', 
        query='name=tom', 
        fragment='example')
    """
    
    print(urlparse(url))
    """
    ParseResult(
        scheme='https', 
        netloc='username:password@www.baidu.com:80', 
        path='/index.html', 
        params='parameters', 
        query='name=tom', 
        fragment='example'
    )
    """
    

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号