url.parse :定義了url的標(biāo)準(zhǔn)接口游添,實現(xiàn)url的各種抽取parse模塊的使用:url的解析通熄,合并,編碼唇辨,解碼
使用時需導(dǎo)入
from urllib import parse
urlparse()實現(xiàn)URL的識別和分段
url = 'https://book.qidian.com/info/1004608738?wd=123&page=20#Catalog'
"""
url:待解析的url
scheme='':假如解析的url沒有協(xié)議,可以設(shè)置默認(rèn)的協(xié)議,如果url有協(xié)議,設(shè)置此參數(shù)無效
allow_fragments=True:是否忽略錨點,默認(rèn)為True表示不忽略,為False表示忽略
"""
result = parse.urlparse(url=url,scheme='http',allow_fragments=True)
print(result)
print(result.scheme)
"""
(scheme='https', netloc='book.qidian.com', path='/info/1004608738', params='', query='wd=123&page=20', fragment='Catalog')
scheme:表示協(xié)議
netloc:域名
path:路徑
params:參數(shù)
query:查詢條件,一般都是get請求的url
fragment:錨點嗡贺,用于直接定位頁
面的下拉位置鞍帝,跳轉(zhuǎn)到網(wǎng)頁的指定位置
"""
urlunparse()可以實現(xiàn)URL的構(gòu)造
url_parmas = ('https', 'book.qidian.com', '/info/1004608738', '', 'wd=123&page=20', 'Catalog')
components:是一個可迭代對象,長度必須為6
result = parse.urlunparse(url_parmas)
print(result)
"""
https://book.qidian.com/info/1004608738wd=123&page=20#Catalog
"""
urljoin()傳遞一個基礎(chǔ)鏈接,根據(jù)基礎(chǔ)鏈接可以將某一個不完整的鏈接拼接為一個完整鏈接
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)
urlencode()將字典構(gòu)形式的參數(shù)序列化為url編碼后的字符串(常用來構(gòu)造get請求和post請求的參數(shù))k1=v1&k2=v2
parmas = {
'wd':'123',
'page':20
}
parmas_str = parse.urlencode(parmas)
print(parmas_str)
"""
page=20&wd=123
"""
parse_qs()將url編碼格式的參數(shù)反序列化為字典類型
parmas_str = 'page=20&wd=123'
parmas = parse.parse_qs(parmas_str)
print(parmas)
"""
{'page': ['20'], 'wd': ['123']}
"""
quote()可以將中文轉(zhuǎn)換為URL編碼格式
word = '中國夢'
url = 'http://www.baidu.com/s?wd='+parse.quote(word)
print(parse.quote(word))
print(url)
"""
%E4%B8%AD%E5%9B%BD%E6%A2%A6
http://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD%E6%A2%A6
"""
unquote:可以將URL編碼進(jìn)行解碼
url = 'http://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD%E6%A2%A6'
print(parse.unquote(url))
"""
http://www.baidu.com/s?wd=中國夢
"""