Urllib库的使用二---parse模块下常用的url解析

url.parse :定义了url的标准接口,实现url的各种抽取

# 合并以及连接的转换
import urllib.parse as parse
#1.urlparse()
#可以实现URL的识别和分段
url = 'https://www.baidu.com/s?ie=utf-8&tn=baidu&wd=%E7%BE%8E%E5%A5%B3#a'  
result = parse.urlparse(url)
print(result)
print(result.scheme)

# scheme:表示协议
# netloc:域名
# path:路径
# params:参数
# query:查询条件,一般都是get请求的url
# fragment:锚点,用于直接定位页面的下拉位置,跳转到网页的指定位置

# urlparse的其他参数:
# urlstring:这是必填项,待解析的url
# scheme:默认的协议(http或者是https,假如要解析的连接没有带协议那么我们可以设置这个为默认的协议)
# all_fragments:是否忽略锚点,如果忽略的话会被解析为path或者是query的一部分(就近原则,跟谁近就属于谁)

urlunparse:与上面的方法相反,是构造一个url

# 注意参数的格式必须符合上面的打印规则,如果没有对应的部分那么就直接设置为空字符串
# (scheme='https', netloc='www.baidu.com', path='/s', params='', query='ie=utf-8&tn=baidu&wd=%E7%BE%8E%E5%A5%B3', fragment='a')
urls = ('https','www.baidu.com','s','','ie=utf-8&tn=baidu&wd=%E7%BE%8E%E5%A5%B3','')
full_url = parse.urlunparse(urls)
print(full_url)

urljoin:这个方法是完成连接的合并,不过全体是得有特定的长度

# 我们可以提供一个基类的baseurl
# 然后再提供一个不完整的url这时候实现url的评接
#使用场景见(猫眼电影网)
base_url = 'https://www.baidu.com/index.html'
son_url = 'baidu/index.html'
fullurl = parse.urljoin(base_url,son_url)
print(fullurl)

urlencode():将字典形式的参数序列化为url的编码格式k1=v1&k2=v2

data = {
'name':'liwenhao',
'password':'123456'
}
data = parse.urlencode(data).encode('UTF-8')
print(data)

parse_qs:方法是将url的编码格式反序列化为字典类型

data_dict = parse.parse_qs(data)
print(data_dict)
for k,v in data_dict.items():
print(k.decode('UTF-8'))
print(v[0].decode('UTF-8')) 

unquote:对url进行解码

url = 'https://www.baidu.com/s?wd=%E8%B1%86%E7%93%A3'
url = parse.unquote(url)
print(url)

你可能感兴趣的:(Urllib库的使用二---parse模块下常用的url解析)