Computer >> Máy Tính >  >> Lập trình >> Python

urllib.parse - Phân tích cú pháp URL thành các thành phần trong Python

Mô-đun này cung cấp một giao diện tiêu chuẩn để ngắt các chuỗi Định vị Tài nguyên Thống nhất (URL) trong các thành phần hoặc để kết hợp các thành phần trở lại thành một chuỗi URL. Nó cũng có các chức năng để chuyển đổi một "URL tương đối" thành một URL tuyệt đối với một "URL cơ sở".

Mô-đun này hỗ trợ các lược đồ URL sau -

  • tệp
  • ftp
  • gopher
  • hdl
  • http
  • https
  • imap
  • mailto
  • mms
  • tin tức
  • nntp
  • thịnh vượng
  • rsync
  • rtsp
  • rtspu
  • sftp
  • shttp
  • nhấm nháp
  • từng ngụm
  • hắt hơi
  • svn
  • svn + ssh
  • telnet
  • wais
  • ws
  • wss

urlparse ()

Hàm này phân tích cú pháp URL thành 6 thành phần, trả về 6 bộ-tuple. Đ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 thành các phần nhỏ hơn (ví dụ:vị trí mạng là một chuỗi đơn) và% thoát không được mở rộng. Giá trị trả về là một phiên bản của một lớp con của tuple được tạo thành từ các thuộc tính sau:

Thuộc tính Chỉ mục Giá trị Giá trị nếu không có
lược đồ 0 Công cụ chỉ định lược đồ URL tham số lược đồ
netloc 1 Phần vị trí mạng tham số lược đồ
đường dẫn 2 Đường dẫn phân cấp chuỗi trống
thông số 3 Tham số cho phần tử đường dẫn cuối cùng chuỗi trống
truy vấn 4 Thành phần truy vấn chuỗi trống
mảnh 5 Mã nhận dạng đoạn chuỗi trống
tên người dùng
Tên người dùng Không có
mật khẩu
Mật khẩu Không có
tên máy chủ
Tên máy chủ (chữ thường) Không có
cổng
Số cổng dưới dạng số nguyên, nếu có Không có

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 (bộ phận)

Hàm này tạo một URL từ một bộ giá trị được trả về bởi hàm urlparse (). Đối số phần có thể là bất kỳ mục nào có thể lặp lại gồm sáu mục.

>>> from urllib.parse import urlunparse
>>> urlunparse(t)
'https://mail.google.com/mail/u/0/?tab = rm#inbox'

urlsplit(urlstring, scheme = '', allow_fragments = True):

Điều này tương tự như urlparse (), nhưng không tách các tham số khỏi URL. Hàm này trả về 5 tuple:(lược đồ đánh địa chỉ, vị trí mạng, đường dẫn, truy vấn, mã định danh phân đoạn).

>>> from urllib.parse import urlsplit
>>> urlsplit(url)
SplitResult(scheme = 'https', netloc = 'mail.google.com', path = '/mail/u/0/', query = 'tab = rm', fragment = 'inbox')

urlunsplit (bộ phận)

Hàm này kết hợp các phần tử của một tuple do urlsplit () trả về thành một URL hoàn chỉnh dưới dạng một chuỗi.

Các chức năng trích dẫn URL tập trung vào việc lấy dữ liệu chương trình và làm cho nó an toàn để sử dụng làm thành phần URL bằng cách trích dẫn các ký tự đặc biệt và mã hóa văn bản không phải ASCII một cách thích hợp.

quote ()

Hàm này thay thế các ký tự đặc biệt trong chuỗi bằng cách sử dụng thoát% xx. Các chữ cái, chữ số và ký tự '_.- ~' không bao giờ được trích dẫn.

>>> from urllib.parse import quote
>>> q = quote(url)
'https%3A//mail.google.com/mail/u/0/%3Ftab%3Drm%23inbox'
quote_plus():

Giống như quote (), nhưng cũng thay thế khoảng trắng bằng dấu cộng, theo yêu cầu để trích dẫn các giá trị biểu mẫu HTML khi tạo chuỗi truy vấn để chuyển đến URL.

unquote ()

Hàm này thay thế% xx thoát bằng ký tự tương đương của chúng.

>>> 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 một đối tượng ánh xạ hoặc một chuỗi các bộ giá trị hai phần tử, thành một chuỗi văn bản ASCII được mã hóa phần trăm. Chuỗi kết quả là một chuỗi các cặp key =value được phân tách bằng ký tự '&'.

>>> from urllib.parse import urlencode
>>> qry = {"name":"Rajeev", "salary":20000}
>>> urlencode(qry)
'name = Rajeev&salary = 20000'