urllib库(二)parse模块:urlparse()/urlsplit(),parse_qs()/parse_qsl(),urlunparse()/urlunsplit(),urlencode()

tt
摘要由CSDN通过智能技术生成

urllib.parse模块用于解析URL,支持对URL的操作包括拆分、拼接、编码、解码等。
urllib.parse模块在功能上分为两大类:URL parsing(URL解析)和URL quoting(URL引用)

一 、URL parsing

拆分和拼接:将url字符串拆分为各种组件,或者将url组件合并为url字符串

(1)urlparse()/urlsplit()

(1)urllib.parse.urlparse()函数:拆分url的6个组成部分
函数定义
	urlparse(url, scheme='', allow_fragments=True)
    Parse a URL into 6 components:
    <scheme>://<netloc>/<path>;<params>?<query>#<fragment>
    Return a 6-tuple: (scheme, netloc, path, params, query, fragment).
注意6个组成部分的url的path和params之间是分号
参数
	scheme:采用的协议。如果在urlstring中已指定,该参数可省略
		注意的是只有在由"//"引导下的netloc字符串才会被正确识别,否则将被认为是path
	allow_fragments:设置是否忽略fragment即锚点
		该参数默认为True,即不忽略。如果设置为False,则该参数会被忽略
返回值
    是一个<class 'urllib.parse.ParseResult'>对象,实际是一个包含url中6个元素的具名元组 
	    具名元组本质还是一个元组 因此可通过元组下标访问ParseResult对象
	    同时具名元组的所有方法都适用于ParseResult对象 
	    	因此可通过具名元组关键字如scheme、netloc等访问 (推荐关键字 代码自动补全)
    
>>> import urllib.parse    
>>> url= "http://www.example.org/default.html?ct=32&op=92&item=98"
>>> urllib.parse.urlparse(url)
ParseResult(scheme='http', netloc='www.example.org', path='/default.html', params='', query='ct=32&op=92&item=98', fragment='')
>>> type(urllib.parse.urlparse(url))
<class 'urllib.parse.ParseResult'>

#也可以是  
# url= "www.example.org/default.html?ct=32&op=92&item=98"
# pr=urllib.parse.urlparse(url,‘http’)

pr=urllib.parse.urlparse(url)
>>> pr.scheme
'http'
>>> pr[0]
'http'

注意区分urllib.parse.urlsplit()函数

具名元组传送门https://blog.csdn.net/bear_n/article/details/72837332)

2)urllib.parse.urlsplit()函数:拆分url成5个部分,params将被合并到path中 并以分号隔开
其他用法与urlparse完全相同
函数定义
urlsplit(url, scheme='', allow_fragments=True)
    Parse a URL into 5 components:
    <scheme>://<netloc>/<path>?<query>#<fragment>
    Return a 5-tuple: (scheme, netloc, path, query, fragment).
参数(同urlparse())
	scheme:采用的协议。如果在urlstring中已指定,该参数可省略
		注意的是只有在由"//"引导下的netloc字符串才会被正确识别,否则将被认为是path
	allow_fragments:设置是否忽略fragment即锚点
		该参数默认为True,即不忽略。如果设置为False,则该参数会被忽略
返回值
	是一个<class 'urllib.parse.SplitResult'>对象 实际是一个包含5个元素的具名元组
	具名元组本质还是一个元组 因此可通过元组下标访问SplitResult对象
	    同时具名元组的所有方法都适用于SplitResult对象 
	    	因此可通过具名元组关键字如scheme、netloc等访问 (推荐关键字 代码自动补全)

>>> import urllib.parse     
>>> url= "http://www.example.org/default.html?ct=32&op=92&item=98"
>>> pr=urllib.parse.urlsplit(url)
#也可以是  
# url= "www.example.org/default.html?ct=32&op=92&item=98"
# pr=urllib.parse.urlsplit(url,‘http’)
>>> pr
SplitResult(scheme='http', netloc='www.example.org', path='/default.html', query='ct=32&op=92&item=98',
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值