Python urlparse模块核心功能与使用详解
本文详解Python中urlparse模块的常用方法。介绍urlparse、urlsplit如何解析URL为协议、域名、路径等组件,以及urlunparse和urlunsplit的重组用法。同时说明urljoin处理相对地址的技巧,并展示如何提取hostname、port等附加属性,助力开发者高效处理网络链接。
一、简介
urlparse模块的主要作用是将完整的URL字符串拆解为六个独立的部分,并以元组形式返回。这六个组成部分分别对应:scheme(协议类型)、netloc(网络位置标识)、path(资源路径)、params(路径参数)、query(查询字符串)以及fragment(片段标识)。
二、功能列举
1、urlparse.urlparse():该函数用于将URL字符串解析为上述组件。需要注意的是,传入的URL字符串必须以http://或https://等协议头开头,否则解析结果可能不符合预期。
>>> urlparse.urlparse("https://i.cnblogs.com/EditPosts.aspx?opt=1")
ParseResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', params='', query='opt=1', fragment='')
除了上述六个核心组件外,返回的ParseResult对象还包含其他便捷属性,例如username(用户名)、password(密码)、hostname(主机名)和port(端口号),方便直接获取特定信息。
>>> urlparse.urlparse("https://i.cnblogs.com:80/EditPosts.aspx?opt=1").port
80
>>> urlparse.urlparse("https://i.cnblogs.com:80/EditPosts.aspx?opt=1").hostname
'i.cnblogs.com'
2、urlparse.urljoin():此函数用于将相对路径地址与基准URL组合成完整的绝对URL。虽然对输入格式限制较少,但如果基准URL未以http://开头,函数可能无法正确拼接前缀部分。
>>> urlparse.urljoin("https://i.cnblogs.com","EditPosts.aspx")
'https://i.cnblogs.com/EditPosts.aspx'
3、urlparse.urlsplit():该函数返回一个包含5个元素的元组,相比urlparse少了一个params字段。它适用于遵循RFC2396标准的URL解析场景,结构更为简洁。
>>> urlparse.urlsplit("https://i.cnblogs.com:80/EditPosts.aspx?opt=1")
SplitResult(scheme='https', netloc='i.cnblogs.com:80', path='/EditPosts.aspx', query='opt=1', fragment='')
4、urlparse.urlunsplit():该函数用于将urlsplit()分解后的5个元素重新组合成一个完整的URL字符串。传入的参数必须恰好为5个,或者直接传递urlsplit返回的元组即可实现重组。
>>> urlparse.urlunsplit(("https","i.cnblogs.com","EditPosts.aspx","a=a","b=b"))
'https://i.cnblogs.com/EditPosts.aspx?a=a#b=b'
>>> parse = urlparse.urlsplit("https://i.cnblogs.com:80/EditPosts.aspx?opt=1")
>>> urlparse.urlunsplit(parse)
'https://i.cnblogs.com:80/EditPosts.aspx?opt=1'
5、urlparse.urlunparse():该函数用于将urlparse()分解后的6个元素重新组合成URL字符串。可以直接将urlparse返回的元组作为参数传入,从而还原原始URL格式。
>>> parse = urlparse.urlparse("https://i.cnblogs.com:80/EditPosts.aspx?opt=1")
>>> urlparse.urlunparse(parse)
'https://i.cnblogs.com:80/EditPosts.aspx?opt=1'
>>> urlparse.urlunparse(("https","i.cnblogs.com","/EditPosts.aspx","","opt=1",""))
'https://i.cnblogs.com/EditPosts.aspx?opt=1'
以上这篇基于python(urlparse)模板的使用方法总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









