Module này cung cấp giao diện tiêu chuẩn để phân tách chuỗi Uniform Resource Locator (URL) thành các thành phần hoặc kết hợp các thành phần ngược lại thành chuỗi URL. Nó cũng có hàm chuyển "relative URL" thành absolute URL cho trước "base URL".
Module này hỗ trợ các URL scheme sau:
- file
- ftp
- gopher
- hdl
- http
- https
- imap
- mailto
- mms
- news
- nntp
- prospero
- rsync
- rtsp
- rtspu
- sftp
- shttp
- sip
- sips
- snews
- svn
- svn+ssh
- telnet
- wais
- ws
- wss
urlparse()
Hàm này phân tích URL thành sáu thành phần, trả về tuple 6 phần tử. Điều này tương ứng với cấu trúc chung của một URL. Mỗi mục tuple là một chuỗi. Các thành phần không được chia nhỏ hơn (ví dụ, network location là một chuỗi đơn), và các escape % không được mở rộng. Giá trị trả về là instance của subclass của tuple gồm các thuộc tính sau:
| Thuộc tính | Chỉ số | Giá trị | Giá trị nếu không có |
|---|---|---|---|
| scheme | 0 | URL scheme specifier | scheme parameter |
| netloc | 1 | Network location part | scheme parameter |
| path | 2 | Hierarchical path | empty string |
| params | 3 | Parameters for last path element | empty string |
| query | 4 | Query component | empty string |
| fragment | 5 | Fragment identifier | empty string |
| username | User name | None | |
| password | Password | None | |
| hostname | Host name (lower case) | None | |
| port | Port number as integer, if present | None |
Ví dụ
>>> 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)
Hàm này xây dựng URL từ tuple như được trả về bởi urlparse(). Đối số parts có thể là bất kỳ iterable sáu phần tử nào.
>>> from urllib.parse import urlunparse
>>> urlunparse(t)
'https://mail.google.com/mail/u/0/?tab = rm#inbox'
urlsplit(urlstring, scheme='', allow_fragments=True)
Hàm này tương tự urlparse(), nhưng không tách params từ URL. Hàm này trả về tuple 5 phần tử: (addressing scheme, network location, path, query, fragment identifier).
>>> 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)
Hàm này kết hợp các phần tử của tuple như được trả về bởi urlsplit() thành URL hoàn chỉnh dưới dạng chuỗi.
Các hàm URL quoting tập trung vào lấy dữ liệu chương trình và làm cho nó an toàn để dùng làm thành phần URL bằng cách quoting ký tự đặc biệt và encoding phù hợp văn bản non-ASCII.
quote()
Hàm này thay thế ký tự đặc biệt trong chuỗi dùng escape %xx. Chữ cái, chữ số, và ký tự '_.-~' không bao giờ được quoted.
>>> from urllib.parse import quote
>>> q = quote(url)
'https%3A//mail.google.com/mail/u/0/%3Ftab%3Drm%23inbox'
quote_plus()
Giống quote(), nhưng cũng thay thế khoảng trắng bằng dấu cộng, như yêu cầu cho quoting giá trị HTML form khi xây dựng query string để đưa vào URL.
unquote()
Hàm này thay thế escape %xx bằng tương đương ký tự đơn.
>>> from urllib.parse import unquote
>>> unquote(q)
'https://mail.google.com/mail/u/0/?tab = rm#inbox'
urlencode()
Hàm này chuyển đổi đối tượng mapping hoặc chuỗi tuple hai phần tử, thành chuỗi văn bản ASCII percent-encoded. Chuỗi kết quả là một loạt cặp key = value phân tách bằng ký tự '&'.
>>> from urllib.parse import urlencode
>>> qry = {"name": "Rajeev", "salary": 20000}
>>> urlencode(qry)
'name=Rajeev&salary=20000'