url.parse :定義了url的標(biāo)準(zhǔn)接口砂代,實(shí)現(xiàn)url的各種抽取
# 合并以及連接的轉(zhuǎn)換
import urllib.parse as parse
#1.urlparse()
#可以實(shí)現(xiàn)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:表示協(xié)議
# netloc:域名
# path:路徑
# params:參數(shù)
# query:查詢條件,一般都是get請求的url
# fragment:錨點(diǎn)率挣,用于直接定位頁面的下拉位置刻伊,跳轉(zhuǎn)到網(wǎng)頁的指定位置
# urlparse的其他參數(shù):
# urlstring:這是必填項(xiàng),待解析的url
# scheme:默認(rèn)的協(xié)議(http或者是https椒功,假如要解析的連接沒有帶協(xié)議那么我們可以設(shè)置這個為默認(rèn)的協(xié)議)
# all_fragments:是否忽略錨點(diǎn)娃圆,如果忽略的話會被解析為path或者是query的一部分(就近原則,跟誰近就屬于誰)
urlunparse:與上面的方法相反蛾茉,是構(gòu)造一個url
# 注意參數(shù)的格式必須符合上面的打印規(guī)則讼呢,如果沒有對應(yīng)的部分那么就直接設(shè)置為空字符串
# (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這時候?qū)崿F(xiàn)url的評接
#使用場景見(貓眼電影網(wǎng))
base_url = 'https://www.baidu.com/index.html'
son_url = 'baidu/index.html'
fullurl = parse.urljoin(base_url,son_url)
print(fullurl)
urlencode():將字典形式的參數(shù)序列化為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進(jìn)行解碼
url = 'https://www.baidu.com/s?wd=%E8%B1%86%E7%93%A3'
url = parse.unquote(url)
print(url)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者