urllib中parse模块的使用

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

import urllib.parse as parse
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')) 

quote:可以将中文参数转换为URL编码的格式

url = 'https://www.baidu.com/s?wd=' + parse.quote('美女')
url = parse.unquote(url)
print(url)

unquote:对url进行解码

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

url = parse.unquote(url)
print(url)

你可能感兴趣的:(urllib中parse模块的使用)