当前位置: 首页 > 工具软件 > URL Parser > 使用案例 >

urllib.parse.urlparse:提供处理url接口的工具

方谦
2023-12-01

urllib库是python内置的处理HTTP请求的库,用它来请求url我们用的不多,但是它提供的urllib.parse工具倒是很好用。url.parse :定义了url的标准接口,实现url的各种抽取、解析,合并,编码,解码。
下面来看urlparse提供的接口:

一、urlpase(url):提供url的分解,具体见代码:
from urllib.parse import urlparse
url = 'https://book.qidian.com/info/1004608738?wd=123&page=20#Catalog'
result = urlparse(url)
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:锚点,用于直接定位页
面的下拉位置,跳转到网页的指定位置
"""

urlparse将url解析为协议,域名,路径,参数,查询条件,锚点六大派。
通过访问scheme,netloc,path,params,query,fragment属性分别得到url的协议,域名,路径,参数,查询条件,锚点。

二、urlunparse(内涵六个值) url的塑造
三、urljoin (a,b) url的补全

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

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)
https://book.qidian.com/info/100861102
四、urlencode() url的参数编码
from urllib.parse import urlencode
parmas={
    'name':'张愿斌',
    'age':17
}
result=urlencode(parmas)
print(result)

结果:name=%E5%BC%A0%E6%84%BF%E6%96%8C&age=17
五、parse_qs() url的参数的解码
from urllib.parse import parse_qs
parmas='name=%E5%BC%A0%E6%84%BF%E6%96%8C&age=17'

result=parse_qs(parmas)
print(result)
结果:{'name': ['张愿斌'], 'age': ['17']}
六、quote() 将中文转换为URL编码格式
from urllib.parse import quote
parmas='张愿斌'

result=quote(parmas)
print(result)
结果:%E5%BC%A0%E6%84%BF%E6%96%8C
七、unquote() 将URL编码格式转换为平常格式
from urllib.parse import unquote
parmas='%E5%BC%A0%E6%84%BF%E6%96%8C'
result=unquote(parmas)
print(result)
``
结果:张愿斌
总结来说,urllib.parse提供了解析,拼接,解码、编码url的常用的3*2+1=7个接口。
urlparse()/urlunparse() 解析与拼接,依赖于六大派
urlencode()/parse_qs() 参数的编码与解码,主要是与字典进行转换
quote() 和unquote() 中文与url编码的互相转换
urljoin 基于基url,对另一个url的补全
 类似资料: