您好,登錄后才能下訂單哦!
本篇內容主要講解“python urllib.parse的常用方法有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python urllib.parse的常用方法有哪些”吧!
urllib 是 python 的內置模塊, 主要用于處理url相關的一些操作,例如訪問url、解析url等等。
有趣的是,urllib、urllib2曾經同時出現在python2,python3又將兩個模塊合并成一個,社區又有大神提供了一個urllib3的庫,都是用于處理網絡請求相關功能,不過這些包在 requests 都是弟弟啦。
而python3中,urllib包下面用的最多的恐怕還是parse模塊,主要處理url相關的操作。特別是爬蟲應用中,用得多。
urlparse 方法是把一個完整的URL拆分成不同的組成部分,你可以根據自己的需求提取其中的某部分內容。返回結果ParseResult是namedtuple的子類,由以下10部分組成,每部分既可以通過名字獲取也可以通過下表索引得到。
>>> from urllib import parse
>>> url = 'https://mp.weixin.qq.com/s?__biz=MjM5MzgyODQxMQ==&mid=2650366919&idx=1&sn=1b36a9f2c0921cdeac52942ec591a923#rd'
>>> result = parse.urlparse(url)
>>> print(result)
ParseResult(scheme='https', netloc='mp.weixin.qq.com', path='/s', params='', query='__biz=MjM5MzgyODQxMQ==&mid=2650366919&idx=1&sn=1b36a9f2c0921cdeac52942ec591a923', fragment='rd')
# 通過下標獲取
>>> result[0]
'https'
# 協議
>>> result.scheme
'https'
# url資源路徑
>>> result.path
'/s'
# 查詢參數
>>> result.query
'__biz=MjM5MzgyODQxMQ==&mid=2650366919&idx=1&sn=1b36a9f2c0921cdeac52942ec591a923'
# 獲取主機名
>>> result.hostname
'mp.weixin.qq.com'
parse_qs 是將查詢參數這部分內容解析裝換成字典對象
>>> parse.parse_qs(result.query)
{'__biz': ['MjM5MzgyODQxMQ=='], 'mid': ['2650366919'], 'idx': ['1'], 'sn': ['1b36a9f2c0921cdeac52942ec591a923']}
>>>
每個參數名對應的值是一個列表對象,這是因為在url規范中,一個參數名可以對應多個值。然通常在實際應用場景中一個名字只會對應一個值。
你可以用一行代碼將列表轉化為字符串
>>> {name: value[0] for name, value in parse.parse_qs(result.query).items()}
{'__biz': 'MjM5MzgyODQxMQ==', 'mid': '2650366919', 'idx': '1', 'sn': '1b36a9f2c0921cdeac52942ec591a923'}
反過來,如果由一個字典對象想轉換為url中的查詢參數,那么就可以使用urlencode方法。
>>> d = {'__biz': 'MjM5MzgyODQxMQ==', 'mid': '2650366919', 'idx': '1'}
>>> parse.urlencode(d)
'__biz=MjM5MzgyODQxMQ%3D%3D&mid=2650366919&idx=1'
URL編碼
在URL的標準規范中,url只允許數字、字母和部分特殊符號,如果有中文,就需要使用UTF-8進行編碼,轉換成 %XX的形式,例如: 【中】UTF-8編碼的結果是:
>>> "中".encode()
b'\xe4\xb8\xad'
就會轉換成 %e4%b8%ad
>>> parse.quote("q=中")
'q%3D%E4%B8%AD'
>>>
對于特殊符號,也會進行成對應的16進制符號, 例如 【=】 就轉換成了 %3D
unquote 是 quote 的逆向過程
URL解碼
>>> parse.unquote("q%3D%E4%B8%AD")
'q=中'
到此,相信大家對“python urllib.parse的常用方法有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。