urllib.parse — Python 中的 URL 解析元件
此模組提供了一個標準介面,用於將統一資源定位符 (URL) 字串分解為元件,或將元件組合回 URL 字串。它還具有根據“基本 URL”將“相對 URL”轉換為絕對 URL 的函式。
此模組支援以下 URL 方案 -
- 檔案
- FTP
- Gopher
- HDL
- HTTP
- HTTPS
- IMAP
- Mailto
- MMS
- 新聞
- NNTP
- Prospero
- Rsync
- RTSP
- RTSPU
- SFTP
- SHTTP
- SIP
- Sips
- Snews
- SVN
- SVN+SSH
- Telnet
- Wais
- WS
- WSS
urlparse()
此函式將 URL 解析為六個元件,並返回一個 6 元組。這對應於 URL 的一般結構。每個元組項都是一個字串。元件不會分解成更小的部分(例如,網路位置是一個單一字串),並且不會擴充套件 % 轉義。返回值是元組子類的例項,由以下屬性組成
| 屬性 | 索引 | 值 | 如果不存在,則為值 |
|---|---|---|---|
| 方案 | 0 | URL 方案說明符 | 方案引數 |
| netloc | 1 | 網路位置部分 | 方案引數 |
| 路徑 | 2 | 分層路徑 | 空字串 |
| 引數 | 3 | 最後一個路徑元素的引數 | 空字串 |
| 查詢 | 4 | 查詢元件 | 空字串 |
| 片段 | 5 | 片段識別符號 | 空字串 |
| 使用者名稱 | 使用者名稱 | 無 | |
| 密碼 | 密碼 | 無 | |
| 主機名 | 主機名(小寫) | 無 | |
| 埠 | 埠號(如果存在)作為整數 | 無 |
示例
>>> from urllib.parse import urlparse >>> url = 'https://mail.google.com/mail/u/0/?tab = rm#inbox' >>> t = urlparse(url) ParseResult(scheme = 'https', netloc = 'mail.google.com', path = '/mail/u/0/', params = '', query = 'tab = rm', fragment = 'inbox')
urlunparse(parts)
此函式根據 urlparse() 返回的元組構造一個 URL。parts 引數可以是任何六項可迭代物件。
>>> from urllib.parse import urlunparse >>> urlunparse(t) 'https://mail.google.com/mail/u/0/?tab = rm#inbox' urlsplit(urlstring, scheme = '', allow_fragments = True):
這類似於 urlparse(),但不從 URL 中拆分 params。此函式返回一個 5 元組:(定址方案、網路位置、路徑、查詢、片段識別符號)。
>>> from urllib.parse import urlsplit >>> urlsplit(url) SplitResult(scheme = 'https', netloc = 'mail.google.com', path = '/mail/u/0/', query = 'tab = rm', fragment = 'inbox')
urlunsplit(parts)
此函式將 urlsplit() 返回的元組的元素組合成一個完整的 URL(作為字串)。
URL 引用函式專注於獲取程式資料,並透過引用特殊字元和適當地編碼非 ASCII 文字來使其安全地用作 URL 元件。
quote()
此函式使用 %xx 轉義替換字串中的特殊字元。字母、數字以及字元“_.-~”永遠不會被引用。
>>> from urllib.parse import quote >>> q = quote(url) 'https%3A//mail.google.com/mail/u/0/%3Ftab%3Drm%23inbox' quote_plus():
與 quote() 類似,但也會將空格替換為加號,這對於在構建 URL 中的查詢字串時引用 HTML 表單值是必需的。
unquote()
此函式將其單字元等效項替換為 %xx 轉義。
>>> from urllib.parse import unquote >>> unquote(q) 'https://mail.google.com/mail/u/0/?tab = rm#inbox'
urlencode()
此函式將對映物件或一系列兩個元素的元組轉換為百分比編碼的 ASCII 文字字串。生成的字串是由“&”字元分隔的一系列鍵=值對。
>>> from urllib.parse import urlencode
>>> qry = {"name":"Rajeev", "salary":20000}
>>> urlencode(qry)
'name = Rajeev&salary = 20000'
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP