Làm cách nào để lấy URL từ chuỗi trong Python?

Bây giờ hãy xem ví dụ về cách tìm url từ chuỗi trong python. Chúng ta sẽ nói về trích xuất url từ chuỗi bằng cách sử dụng mô-đun biểu thức chính quy của python. Tôi sẽ chia sẻ với bạn cách trích xuất url từ chuỗi bằng python

Chúng tôi có thể lấy một tệp đầu vào có chứa một số URL và xử lý nó thông qua chương trình sau để trích xuất các URL

Ở đây tôi sẽ cung cấp cho bạn ví dụ đơn giản về cách trích xuất url từ chuỗi trong ví dụ python, Vì vậy, hãy xem ví dụ bên dưới

Là một nhà phát triển Python, chúng tôi phải hoàn thành rất nhiều công việc như xóa dữ liệu khỏi tệp hoặc văn bản trước khi xử lý các hoạt động kinh doanh khác

Ví dụ: bạn có tệp văn bản dữ liệu thô hoặc chuỗi văn bản và bạn phải đọc một số dữ liệu cụ thể như URL bằng cách thực hiện khớp Biểu thức chính quy thực tế

Biểu thức chính quy là gì và mô-đun nào được sử dụng trong Python?

Biểu thức chính quy là một chuỗi [các] ký tự đặc biệt được sử dụng chủ yếu để tìm và thay thế các mẫu trong một chuỗi hoặc tệp, sử dụng một…

Mô-đun này xác định một giao diện tiêu chuẩn để ngắt các chuỗi Bộ định vị tài nguyên thống nhất [URL] trong các thành phần [sơ đồ địa chỉ, vị trí mạng, đường dẫn, v.v. ], để kết hợp các thành phần lại thành chuỗi URL và để chuyển đổi "URL tương đối" thành URL tuyệt đối được cung cấp "URL cơ sở. ”

Mô-đun đã được thiết kế để khớp với RFC internet trên Bộ định vị tài nguyên đồng nhất tương đối. Nó hỗ trợ các sơ đồ URL sau. file, ftp,

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
0,
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
1,
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
2,
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
3,
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
4,
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
5,
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
6,
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
7,
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
8,
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
9,
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
0,
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
1,
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
2,
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
3,
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
4,
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
5,
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
6,
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
7,
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
8,
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
9,
[addressing scheme, network location, path, query, fragment identifier].
0,
[addressing scheme, network location, path, query, fragment identifier].
1,
[addressing scheme, network location, path, query, fragment identifier].
2,

Mô-đun xác định các chức năng thuộc hai loại chính. Phân tích cú pháp URL và trích dẫn URL. Chúng được đề cập chi tiết trong các phần sau

Phân tích cú pháp URL

Các chức năng phân tích cú pháp URL tập trung vào việc tách chuỗi URL thành các thành phần của nó hoặc kết hợp các thành phần URL thành chuỗi URL

urllib. phân tích cú pháp. urlparse[urlstring , scheme='', allow_fragments=True]

Phân tích cú pháp URL thành sáu thành phần, trả về 6 mục. Điều này tương ứng với cấu trúc chung của một URL.

[addressing scheme, network location, path, query, fragment identifier].
5. Mỗi mục tuple là một chuỗi, có thể trống. 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. Các dấu phân cách như được hiển thị ở trên không phải là một phần của kết quả, ngoại trừ dấu gạch chéo ở đầu trong thành phần đường dẫn, dấu gạch chéo này sẽ được giữ lại nếu có. Ví dụ

>>> from urllib.parse import urlparse
>>> urlparse["scheme://netloc/path;parameters?query#fragment"]
ParseResult[scheme='scheme', netloc='netloc', path='/path;parameters', params='',
            query='query', fragment='fragment']
>>> o = urlparse["//docs.python.org:80/3/library/urllib.parse.html?"
..              "highlight=params#url-parsing"]
>>> o
ParseResult[scheme='http', netloc='docs.python.org:80',
            path='/3/library/urllib.parse.html', params='',
            query='highlight=params', fragment='url-parsing']
>>> o.scheme
'http'
>>> o.netloc
'docs.python.org:80'
>>> o.hostname
'docs.python.org'
>>> o.port
80
>>> o._replace[fragment=""].geturl[]
'//docs.python.org:80/3/library/urllib.parse.html?highlight=params'

Theo các đặc tả cú pháp trong RFC 1808, urlparse chỉ nhận ra một netloc nếu nó được giới thiệu đúng bởi '//'. Mặt khác, đầu vào được coi là một URL tương đối và do đó bắt đầu với một thành phần đường dẫn

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']

Đối số lược đồ cung cấp lược đồ địa chỉ mặc định, chỉ được sử dụng nếu URL không chỉ định một. Nó phải cùng loại [văn bản hoặc byte] với chuỗi url, ngoại trừ giá trị mặc định

[addressing scheme, network location, path, query, fragment identifier].
6 luôn được cho phép và được tự động chuyển đổi thành
[addressing scheme, network location, path, query, fragment identifier].
7 nếu thích hợp

Nếu đối số allow_fragments là sai, mã định danh phân đoạn không được nhận dạng. Thay vào đó, chúng được phân tích cú pháp như một phần của đường dẫn, tham số hoặc thành phần truy vấn và

[addressing scheme, network location, path, query, fragment identifier].
8 được đặt thành chuỗi trống trong giá trị trả về

Giá trị trả về là a , có nghĩa là các mục của nó có thể được truy cập theo chỉ mục hoặc dưới dạng thuộc tính được đặt tên, đó là

Thuộc tính

Mục lục

Giá trị

Giá trị nếu không có mặt

[addressing scheme, network location, path, query, fragment identifier].
9

0

Trình xác định lược đồ URL

tham số sơ đồ

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
0

1

Phần vị trí mạng

chuỗi rỗng

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
1

2

đường dẫn phân cấp

chuỗi rỗng

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
2

3

Tham số cho phần tử đường dẫn cuối cùng

chuỗi rỗng

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
3

4

thành phần truy vấn

chuỗi rỗng

[addressing scheme, network location, path, query, fragment identifier].
8

5

mã định danh đoạn

chuỗi rỗng

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
5

Tên tài khoản

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
7

Mật khẩu

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
9

Tên máy chủ [viết thường]

>>> urljoin['//www.cwi.nl/%7Eguido/Python.html',
..         '//www.python.org/%7Eguido']
'//www.python.org/%7Eguido'
1

Số cổng là số nguyên, nếu có

Đọc thuộc tính

>>> urljoin['//www.cwi.nl/%7Eguido/Python.html',
..         '//www.python.org/%7Eguido']
'//www.python.org/%7Eguido'
1 sẽ tăng nếu một cổng không hợp lệ được chỉ định trong URL. Xem phần để biết thêm thông tin về đối tượng kết quả

Dấu ngoặc vuông không khớp trong thuộc tính

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
0 sẽ tăng

Các ký tự trong thuộc tính

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
0 phân tách theo chuẩn hóa NFKC [như được sử dụng bởi mã hóa IDNA] thành bất kỳ ký tự nào trong số
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html',
..         '//www.python.org/%7Eguido']
'//www.python.org/%7Eguido'
8,
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html',
..         '//www.python.org/%7Eguido']
'//www.python.org/%7Eguido'
9,
>>> from urllib.parse import urlsplit
>>> url = '//www.Python.org/doc/#'
>>> r1 = urlsplit[url]
>>> r1.geturl[]
'//www.Python.org/doc/'
>>> r2 = urlsplit[r1.geturl[]]
>>> r2.geturl[]
'//www.Python.org/doc/'
0,
>>> from urllib.parse import urlsplit
>>> url = '//www.Python.org/doc/#'
>>> r1 = urlsplit[url]
>>> r1.geturl[]
'//www.Python.org/doc/'
>>> r2 = urlsplit[r1.geturl[]]
>>> r2.geturl[]
'//www.Python.org/doc/'
1 hoặc
>>> from urllib.parse import urlsplit
>>> url = '//www.Python.org/doc/#'
>>> r1 = urlsplit[url]
>>> r1.geturl[]
'//www.Python.org/doc/'
>>> r2 = urlsplit[r1.geturl[]]
>>> r2.geturl[]
'//www.Python.org/doc/'
2 sẽ tăng. Nếu URL được phân tách trước khi phân tích cú pháp, sẽ không có lỗi nào phát sinh

Như trường hợp của tất cả các bộ dữ liệu được đặt tên, lớp con có một vài phương thức và thuộc tính bổ sung đặc biệt hữu ích. Một phương pháp như vậy là

>>> from urllib.parse import urlsplit
>>> url = '//www.Python.org/doc/#'
>>> r1 = urlsplit[url]
>>> r1.geturl[]
'//www.Python.org/doc/'
>>> r2 = urlsplit[r1.geturl[]]
>>> r2.geturl[]
'//www.Python.org/doc/'
4. Phương thức
>>> from urllib.parse import urlsplit
>>> url = '//www.Python.org/doc/#'
>>> r1 = urlsplit[url]
>>> r1.geturl[]
'//www.Python.org/doc/'
>>> r2 = urlsplit[r1.geturl[]]
>>> r2.geturl[]
'//www.Python.org/doc/'
4 sẽ trả về một đối tượng ParseResult mới thay thế các trường đã chỉ định bằng các giá trị mới

>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']

Đã thay đổi trong phiên bản 3. 2. Đã thêm khả năng phân tích cú pháp URL IPv6.

Đã thay đổi trong phiên bản 3. 3. Đoạn hiện được phân tích cú pháp cho tất cả các lược đồ URL [trừ khi allow_fragment là sai], theo RFC 3986. Trước đây, đã tồn tại một danh sách cho phép các lược đồ hỗ trợ các phân đoạn.

Đã thay đổi trong phiên bản 3. 6. Số cổng ngoài phạm vi hiện tăng , thay vì trả về.

Đã thay đổi trong phiên bản 3. 8. Các ký tự ảnh hưởng đến phân tích cú pháp netloc theo chuẩn hóa NFKC giờ đây sẽ tăng lên.

urllib. phân tích cú pháp. parse_qs[qs , keep_blank_values=False, strict_parsing=False, encoding='utf-8', errors='replace', max_num_fields=None, separator='&']

Phân tích chuỗi truy vấn được cung cấp dưới dạng đối số chuỗi [dữ liệu thuộc loại ứng dụng/x-www-form-urlencoding]. Dữ liệu được trả về dưới dạng từ điển. Các khóa từ điển là các tên biến truy vấn duy nhất và các giá trị là danh sách các giá trị cho mỗi tên

Đối số tùy chọn keep_blank_values ​​là cờ cho biết liệu các giá trị trống trong truy vấn được mã hóa theo phần trăm có được coi là chuỗi trống hay không. Một giá trị true chỉ ra rằng các khoảng trống nên được giữ lại dưới dạng các chuỗi trống. Giá trị sai mặc định cho biết rằng các giá trị trống sẽ bị bỏ qua và coi như chúng không được bao gồm

Đối số tùy chọnstrict_parsing là cờ cho biết phải làm gì với lỗi phân tích cú pháp. Nếu sai [mặc định], lỗi sẽ bị bỏ qua. Nếu đúng, lỗi sẽ đưa ra một ngoại lệ

Các tham số mã hóa và lỗi tùy chọn chỉ định cách giải mã các chuỗi được mã hóa theo phần trăm thành các ký tự Unicode, như được phương thức chấp nhận

Đối số tùy chọn max_num_fields là số lượng trường tối đa để đọc. Nếu được đặt, sau đó ném một nếu có nhiều hơn max_num_fields trường được đọc

Dấu tách đối số tùy chọn là ký hiệu được sử dụng để tách các đối số truy vấn. Nó mặc định là urllib.parse2

Sử dụng hàm [với tham số urllib.parse4 được đặt thành urllib.parse5] để chuyển đổi các từ điển đó thành các chuỗi truy vấn

Đã thay đổi trong phiên bản 3. 2. Thêm thông số mã hóa và lỗi.

Đã thay đổi trong phiên bản 3. 8. Đã thêm tham số max_num_fields.

Đã thay đổi trong phiên bản 3. 10. Đã thêm tham số dấu phân cách với giá trị mặc định là urllib.parse2. Các phiên bản Python sớm hơn Python 3. 10 được phép sử dụng cả urllib.parse7 và urllib.parse2 làm dấu tách tham số truy vấn. Điều này đã được thay đổi để chỉ cho phép một khóa dấu phân cách duy nhất, với ____131_______2 làm dấu phân cách mặc định.

urllib. phân tích cú pháp. parse_qsl[qs , keep_blank_values=False, strict_parsing=False, encoding='utf-8', errors='replace', max_num_fields=None, separator='&']

Phân tích chuỗi truy vấn được cung cấp dưới dạng đối số chuỗi [dữ liệu thuộc loại ứng dụng/x-www-form-urlencoding]. Dữ liệu được trả về dưới dạng danh sách các cặp tên, giá trị

Đối số tùy chọn keep_blank_values ​​là cờ cho biết liệu các giá trị trống trong truy vấn được mã hóa theo phần trăm có được coi là chuỗi trống hay không. Một giá trị true chỉ ra rằng các khoảng trống nên được giữ lại dưới dạng các chuỗi trống. Giá trị sai mặc định cho biết rằng các giá trị trống sẽ bị bỏ qua và coi như chúng không được bao gồm

Đối số tùy chọnstrict_parsing là cờ cho biết phải làm gì với lỗi phân tích cú pháp. Nếu sai [mặc định], lỗi sẽ bị bỏ qua. Nếu đúng, lỗi sẽ đưa ra một ngoại lệ

Các tham số mã hóa và lỗi tùy chọn chỉ định cách giải mã các chuỗi được mã hóa theo phần trăm thành các ký tự Unicode, như được phương thức chấp nhận

Đối số tùy chọn max_num_fields là số lượng trường tối đa để đọc. Nếu được đặt, sau đó ném một nếu có nhiều hơn max_num_fields trường được đọc

Dấu tách đối số tùy chọn là ký hiệu được sử dụng để tách các đối số truy vấn. Nó mặc định là urllib.parse2

Sử dụng hàm để chuyển đổi danh sách các cặp đó thành chuỗi truy vấn

Đã thay đổi trong phiên bản 3. 2. Thêm thông số mã hóa và lỗi.

Đã thay đổi trong phiên bản 3. 8. Đã thêm tham số max_num_fields.

Đã thay đổi trong phiên bản 3. 10. Đã thêm tham số dấu phân cách với giá trị mặc định là urllib.parse2. Các phiên bản Python sớm hơn Python 3. 10 được phép sử dụng cả urllib.parse7 và urllib.parse2 làm dấu tách tham số truy vấn. Điều này đã được thay đổi để chỉ cho phép một khóa dấu phân cách duy nhất, với ____131_______2 làm dấu phân cách mặc định.

urllib. phân tích cú pháp. urlunparse[phần]

Tạo một URL từ một tuple như được trả về bởi file9. Đối số bộ phận có thể là bất kỳ sáu mục nào có thể lặp lại. Điều này có thể dẫn đến một URL hơi khác, nhưng tương đương, nếu URL đã được phân tích cú pháp ban đầu có các dấu phân cách không cần thiết [ví dụ:

>>> urljoin['//www.cwi.nl/%7Eguido/Python.html',
..         '//www.python.org/%7Eguido']
'//www.python.org/%7Eguido'
9 với một truy vấn trống; RFC tuyên bố rằng những dấu phân cách này là tương đương]

urllib. phân tích cú pháp. urlsplit[urlstring , scheme='', allow_fragments=True]

Điều này tương tự như, nhưng không tách các tham số khỏi URL. Điều này thường được sử dụng thay vì nếu cú ​​pháp URL mới hơn cho phép áp dụng các tham số cho từng phân đoạn của phần đường dẫn của URL [xem RFC 2396] là cần thiết. Cần có một chức năng riêng biệt để phân tách các đoạn đường dẫn và tham số. Hàm này trả về 5 mục

[addressing scheme, network location, path, query, fragment identifier].

Giá trị trả về là a , các mục của nó có thể được truy cập theo chỉ mục hoặc dưới dạng thuộc tính được đặt tên

Thuộc tính

Mục lục

Giá trị

Giá trị nếu không có mặt

[addressing scheme, network location, path, query, fragment identifier].
9

0

Trình xác định lược đồ URL

tham số sơ đồ

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
0

1

Phần vị trí mạng

chuỗi rỗng

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
1

2

đường dẫn phân cấp

chuỗi rỗng

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
3

3

thành phần truy vấn

chuỗi rỗng

[addressing scheme, network location, path, query, fragment identifier].
8

4

mã định danh đoạn

chuỗi rỗng

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
5

Tên tài khoản

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
7

Mật khẩu

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
9

Tên máy chủ [viết thường]

>>> urljoin['//www.cwi.nl/%7Eguido/Python.html',
..         '//www.python.org/%7Eguido']
'//www.python.org/%7Eguido'
1

Số cổng là số nguyên, nếu có

Đọc thuộc tính

>>> urljoin['//www.cwi.nl/%7Eguido/Python.html',
..         '//www.python.org/%7Eguido']
'//www.python.org/%7Eguido'
1 sẽ tăng nếu một cổng không hợp lệ được chỉ định trong URL. Xem phần để biết thêm thông tin về đối tượng kết quả

Dấu ngoặc vuông không khớp trong thuộc tính

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
0 sẽ tăng

Các ký tự trong thuộc tính

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'
0 phân tách theo chuẩn hóa NFKC [như được sử dụng bởi mã hóa IDNA] thành bất kỳ ký tự nào trong số
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html',
..         '//www.python.org/%7Eguido']
'//www.python.org/%7Eguido'
8,
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html',
..         '//www.python.org/%7Eguido']
'//www.python.org/%7Eguido'
9,
>>> from urllib.parse import urlsplit
>>> url = '//www.Python.org/doc/#'
>>> r1 = urlsplit[url]
>>> r1.geturl[]
'//www.Python.org/doc/'
>>> r2 = urlsplit[r1.geturl[]]
>>> r2.geturl[]
'//www.Python.org/doc/'
0,
>>> from urllib.parse import urlsplit
>>> url = '//www.Python.org/doc/#'
>>> r1 = urlsplit[url]
>>> r1.geturl[]
'//www.Python.org/doc/'
>>> r2 = urlsplit[r1.geturl[]]
>>> r2.geturl[]
'//www.Python.org/doc/'
1 hoặc
>>> from urllib.parse import urlsplit
>>> url = '//www.Python.org/doc/#'
>>> r1 = urlsplit[url]
>>> r1.geturl[]
'//www.Python.org/doc/'
>>> r2 = urlsplit[r1.geturl[]]
>>> r2.geturl[]
'//www.Python.org/doc/'
2 sẽ tăng. Nếu URL được phân tách trước khi phân tích cú pháp, sẽ không có lỗi nào phát sinh

Sau bản cập nhật RFC 3986, các ký tự xuống dòng ASCII _______17, _________18 và tab _________19 bị xóa khỏi URL

Đã thay đổi trong phiên bản 3. 6. Số cổng ngoài phạm vi hiện tăng , thay vì trả về.

Đã thay đổi trong phiên bản 3. 8. Các ký tự ảnh hưởng đến phân tích cú pháp netloc theo chuẩn hóa NFKC giờ đây sẽ tăng lên.

Đã thay đổi trong phiên bản 3. 10. Các ký tự tab và dòng mới ASCII bị xóa khỏi URL.

urllib. phân tích cú pháp. urlunsplit[các phần]

Kết hợp các phần tử của một bộ như được trả về bởi một URL hoàn chỉnh dưới dạng một chuỗi. Đối số bộ phận có thể là bất kỳ năm mục nào có thể lặp lại. Điều này có thể dẫn đến một URL hơi khác, nhưng tương đương, nếu URL đã được phân tích cú pháp ban đầu có các dấu phân cách không cần thiết [ví dụ: dấu ? với truy vấn trống; RFC tuyên bố rằng các dấu phân cách này là tương đương]

urllib. phân tích cú pháp. urljoin[base , url, allow_fragments=True]

Xây dựng một URL [“tuyệt đối”] đầy đủ bằng cách kết hợp một “URL cơ sở” [base] với một URL [url] khác. Một cách không chính thức, điều này sử dụng các thành phần của URL cơ sở, cụ thể là lược đồ địa chỉ, vị trí mạng và [một phần] đường dẫn, để cung cấp các thành phần còn thiếu trong URL tương đối. Ví dụ

>>> from urllib.parse import urljoin
>>> urljoin['//www.cwi.nl/%7Eguido/Python.html', 'FAQ.html']
'//www.cwi.nl/%7Eguido/FAQ.html'

Đối số allow_fragments có cùng ý nghĩa và mặc định như đối với

Ghi chú

Nếu url là một URL tuyệt đối [nghĩa là url bắt đầu bằng

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
25 hoặc
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
26], thì tên máy chủ và/hoặc lược đồ của url sẽ xuất hiện trong kết quả. Ví dụ

>>> urljoin['//www.cwi.nl/%7Eguido/Python.html',
..         '//www.python.org/%7Eguido']
'//www.python.org/%7Eguido'

Nếu bạn không muốn hành vi đó, hãy xử lý trước url bằng và , loại bỏ các phần sơ đồ và netloc có thể có

Đã thay đổi trong phiên bản 3. 5. Hành vi được cập nhật để phù hợp với ngữ nghĩa được xác định trong RFC 3986.

urllib. phân tích cú pháp. urldefrag[url]

Nếu url chứa số nhận dạng đoạn, hãy trả về phiên bản đã sửa đổi của url không có số nhận dạng đoạn và số nhận dạng đoạn dưới dạng một chuỗi riêng biệt. Nếu không có định danh phân đoạn trong url, hãy trả về url chưa sửa đổi và một chuỗi trống

Giá trị trả về là a , các mục của nó có thể được truy cập theo chỉ mục hoặc dưới dạng thuộc tính được đặt tên

Thuộc tính

Mục lục

Giá trị

Giá trị nếu không có mặt

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
29

0

URL không có đoạn

chuỗi rỗng

[addressing scheme, network location, path, query, fragment identifier].
8

1

mã định danh đoạn

chuỗi rỗng

Xem phần để biết thêm thông tin về đối tượng kết quả

Đã thay đổi trong phiên bản 3. 2. Kết quả là một đối tượng có cấu trúc chứ không phải là một bộ 2 đơn giản.

urllib. phân tích cú pháp. mở gói[url]

Trích xuất url từ một URL được bao bọc [nghĩa là một chuỗi có định dạng là

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
31,
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
32,
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
33 hoặc
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
34]. Nếu url không phải là một URL được bọc, nó sẽ được trả lại mà không có thay đổi

Phân tích cú pháp các byte được mã hóa ASCII

Các chức năng phân tích cú pháp URL ban đầu được thiết kế để chỉ hoạt động trên các chuỗi ký tự. Trong thực tế, sẽ rất hữu ích khi có thể thao tác các URL được trích dẫn và mã hóa đúng cách dưới dạng các chuỗi byte ASCII. Theo đó, các chức năng phân tích cú pháp URL trong mô-đun này đều hoạt động trên đối tượng và đối tượng ngoài đối tượng

Nếu dữ liệu được truyền vào, kết quả cũng sẽ chỉ chứa dữ liệu. Nếu hoặc dữ liệu được truyền vào, kết quả sẽ chỉ chứa dữ liệu

Việc cố gắng trộn dữ liệu với hoặc trong một lệnh gọi hàm đơn lẻ sẽ dẫn đến việc tăng giá trị, trong khi việc cố gắng chuyển các giá trị byte không phải ASCII sẽ kích hoạt

Để hỗ trợ chuyển đổi dễ dàng hơn các đối tượng kết quả giữa và , tất cả các giá trị trả về từ hàm phân tích cú pháp URL đều cung cấp phương thức

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
50 [khi kết quả chứa dữ liệu] hoặc phương thức
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
52 [khi kết quả chứa dữ liệu]. Chữ ký của các phương thức này khớp với chữ ký của các phương thức và phương thức tương ứng [ngoại trừ việc mã hóa mặc định là
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
56 thay vì
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
57]. Mỗi giá trị tạo ra một giá trị thuộc loại tương ứng có chứa dữ liệu [đối với phương pháp
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
50] hoặc dữ liệu [đối với phương pháp
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
52]

Các ứng dụng cần hoạt động trên các URL có khả năng được trích dẫn không chính xác có thể chứa dữ liệu không phải ASCII sẽ cần thực hiện giải mã riêng từ byte thành ký tự trước khi gọi các phương pháp phân tích cú pháp URL

Hành vi được mô tả trong phần này chỉ áp dụng cho các chức năng phân tích cú pháp URL. Các hàm trích dẫn URL sử dụng các quy tắc riêng của chúng khi tạo hoặc sử dụng các chuỗi byte như được trình bày chi tiết trong tài liệu về các hàm trích dẫn URL riêng lẻ

Đã thay đổi trong phiên bản 3. 2. Chức năng phân tích cú pháp URL hiện chấp nhận chuỗi byte được mã hóa ASCII

Kết quả phân tích cú pháp có cấu trúc

Các đối tượng kết quả từ , và các hàm là các lớp con của loại. Các lớp con này thêm các thuộc tính được liệt kê trong tài liệu cho các chức năng đó, hỗ trợ mã hóa và giải mã được mô tả trong phần trước, cũng như một phương pháp bổ sung

urllib. phân tích cú pháp. Chia kết quả. geturl[]

Trả lại phiên bản được kết hợp lại của URL gốc dưới dạng chuỗi. Điều này có thể khác với URL ban đầu ở chỗ lược đồ có thể được chuẩn hóa thành chữ thường và các thành phần trống có thể bị loại bỏ. Cụ thể, các tham số trống, truy vấn và mã định danh đoạn sẽ bị xóa

Để có kết quả, chỉ các mã định danh đoạn trống sẽ bị xóa. Đối với và kết quả, tất cả các thay đổi được lưu ý sẽ được thực hiện đối với URL được phương thức này trả về

Kết quả của phương pháp này không thay đổi nếu được trả lại thông qua chức năng phân tích cú pháp ban đầu

>>> from urllib.parse import urlsplit
>>> url = '//www.Python.org/doc/#'
>>> r1 = urlsplit[url]
>>> r1.geturl[]
'//www.Python.org/doc/'
>>> r2 = urlsplit[r1.geturl[]]
>>> r2.geturl[]
'//www.Python.org/doc/'

Các lớp sau cung cấp việc triển khai các kết quả phân tích cú pháp có cấu trúc khi thao tác trên các đối tượng

lớp urllib. phân tích cú pháp. DefragResult[url , đoạn]

Lớp bê tông cho kết quả chứa dữ liệu. Phương thức

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
50 trả về một thể hiện

Mới trong phiên bản 3. 2

lớp urllib. phân tích cú pháp. ParseResult[lược đồ , netloc, path, params, query, fragment]

Lớp bê tông cho kết quả chứa dữ liệu. Phương thức

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
50 trả về một thể hiện

lớp urllib. phân tích cú pháp. SplitResult[sơ đồ , netloc, path, query, fragment]

Lớp bê tông cho kết quả chứa dữ liệu. Phương thức

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
50 trả về một thể hiện

Các lớp sau đây cung cấp việc triển khai các kết quả phân tích cú pháp khi thao tác trên hoặc các đối tượng

lớp urllib. phân tích cú pháp. DefragResultBytes[url , đoạn]

Lớp bê tông cho kết quả chứa dữ liệu. Phương thức

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
52 trả về một thể hiện

Mới trong phiên bản 3. 2

lớp urllib. phân tích cú pháp. ParseResultBytes[lược đồ , netloc, path, params, query, fragment]

Lớp bê tông cho kết quả chứa dữ liệu. Phương thức

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
52 trả về một thể hiện

Mới trong phiên bản 3. 2

lớp urllib. phân tích cú pháp. SplitResultBytes[lược đồ , netloc, path, query, fragment]

Lớp bê tông cho kết quả chứa dữ liệu. Phương thức

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
52 trả về một thể hiện

Mới trong phiên bản 3. 2

Trích dẫn URL

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à đảm bảo an toàn khi 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 thích hợp văn bản không phải ASCII. Chúng cũng hỗ trợ đảo ngược các thao tác này để tạo lại dữ liệu gốc từ nội dung của một thành phần URL nếu tác vụ đó chưa được các chức năng phân tích cú pháp URL ở trên bao phủ

urllib. phân tích cú pháp. trích dẫn[chuỗi , an toàn='/', encoding=None, errors=None]

Thay thế các ký tự đặc biệt trong chuỗi bằng cách sử dụng thoát

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
96. Các chữ cái, chữ số và ký tự
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
97 không bao giờ được trích dẫn. Theo mặc định, hàm này dùng để trích dẫn phần đường dẫn của URL. Tham số an toàn tùy chọn chỉ định các ký tự ASCII bổ sung không được trích dẫn — giá trị mặc định của nó là
>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
98

chuỗi có thể là một hoặc một đối tượng

Đã thay đổi trong phiên bản 3. 7. Đã chuyển từ RFC 2396 sang RFC 3986 để trích dẫn chuỗi URL. “~” hiện được bao gồm trong tập hợp các ký tự không được đặt trước.

Các tham số mã hóa và lỗi tùy chọn chỉ định cách xử lý các ký tự không phải ASCII, như được phương thức chấp nhận. mã hóa mặc định thành

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
57. lỗi mặc định là
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
03, nghĩa là các ký tự không được hỗ trợ sẽ tăng. không được cung cấp mã hóa và lỗi nếu chuỗi là a hoặc a được nâng lên

Lưu ý rằng

>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
07 tương đương với
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
08

Thí dụ.

>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
09 sản lượng
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
10

urllib. phân tích cú pháp. quote_plus[chuỗi , an toàn='', encoding=None, errors=None]

Like , nhưng cũng thay thế khoảng trắng bằng dấu cộng, như được yêu cầu để trích dẫn các giá trị biểu mẫu HTML khi xây dựng chuỗi truy vấn để đi vào URL. Các dấu cộng trong chuỗi gốc được thoát trừ khi chúng được đưa vào an toàn. Nó cũng không có mặc định an toàn là

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
98

Thí dụ.

>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
13 sản lượng
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
14

urllib. phân tích cú pháp. quote_from_bytes[byte , an toàn='/']

Like , nhưng chấp nhận một đối tượng chứ không phải một và không thực hiện mã hóa chuỗi thành byte

Thí dụ.

>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
18 sản lượng
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
19

urllib. phân tích cú pháp. bỏ trích dẫn[chuỗi , mã hóa='utf-8', errors='replace']

Thay thế

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
96 lần thoát bằng ký tự đơn tương đương của chúng. Các tham số mã hóa và lỗi tùy chọn chỉ định cách giải mã các chuỗi được mã hóa theo phần trăm thành các ký tự Unicode, như được phương thức chấp nhận

chuỗi có thể là một hoặc một đối tượng

mã hóa mặc định thành

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
57. lỗi mặc định là
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
25, nghĩa là các chuỗi không hợp lệ được thay thế bằng một ký tự giữ chỗ

Thí dụ.

>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
26 sản lượng
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
27

Đã thay đổi trong phiên bản 3. 9. tham số chuỗi hỗ trợ các đối tượng byte và str [trước đây chỉ có str].

urllib. phân tích cú pháp. unquote_plus[chuỗi , mã hóa='utf-8', errors='replace']

Like , nhưng cũng thay thế các dấu cộng bằng dấu cách, theo yêu cầu đối với các giá trị biểu mẫu HTML bỏ trích dẫn

chuỗi phải là một

Thí dụ.

>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
30 sản lượng
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
27

urllib. phân tích cú pháp. unquote_to_bytes[chuỗi]

Thay thế

>>> from urllib.parse import urlparse
>>> urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['www.cwi.nl/%7Eguido/Python.html']
ParseResult[scheme='', netloc='', path='www.cwi.nl/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> urlparse['help/Python.html']
ParseResult[scheme='', netloc='', path='help/Python.html', params='',
            query='', fragment='']
96 thoát bằng một octet tương đương của chúng và trả về một đối tượng

chuỗi có thể là một hoặc một đối tượng

Nếu nó là , các ký tự không phải ASCII không thoát trong chuỗi được mã hóa thành byte UTF-8

Thí dụ.

>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
37 sản lượng
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
38

urllib. phân tích cú pháp. urlencode[truy vấn , liều lượng=False, safe='', encoding=None, errors=None, quote_via=quote_plus]

Chuyển đổi một đối tượng ánh xạ hoặc một chuỗi các bộ hai phần tử, có thể chứa hoặc các đối tượng, thành chuỗi văn bản ASCII được mã hóa phần trăm. Nếu chuỗi kết quả được sử dụng làm dữ liệu cho thao tác POST với hàm, thì nó phải được mã hóa thành byte, nếu không nó sẽ dẫn đến lỗi

Chuỗi kết quả là một chuỗi gồm _______10_______43 cặp được phân tách bằng _______10_______44 ký tự, trong đó cả khóa và giá trị đều được trích dẫn bằng cách sử dụng hàm quote_via. Theo mặc định, được sử dụng để trích dẫn các giá trị, có nghĩa là dấu cách được trích dẫn dưới dạng ký tự

>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
46 và ký tự '/' được mã hóa thành
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
47, tuân theo tiêu chuẩn cho yêu cầu GET [
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
48]. Một hàm thay thế có thể được truyền dưới dạng quote_via là , hàm này sẽ mã hóa khoảng trắng dưới dạng
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
50 và không mã hóa ký tự '/'. Để kiểm soát tối đa những gì được trích dẫn, hãy sử dụng
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
51 và chỉ định giá trị an toàn

Khi một chuỗi các bộ dữ liệu hai phần tử được sử dụng làm đối số truy vấn, phần tử đầu tiên của mỗi bộ dữ liệu là một khóa và phần tử thứ hai là một giá trị. Bản thân phần tử giá trị có thể là một chuỗi và trong trường hợp đó, nếu tham số tùy chọn liều lượng ước tính thành urllib.parse5, thì các cặp

>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
43 riêng lẻ được phân tách bằng
>>> from urllib.parse import urlparse
>>> u = urlparse['//www.cwi.nl:80/%7Eguido/Python.html']
>>> u
ParseResult[scheme='', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
>>> u._replace[scheme='http']
ParseResult[scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',
            params='', query='', fragment='']
44 được tạo cho từng phần tử của chuỗi giá trị cho khóa. Thứ tự của các tham số trong chuỗi được mã hóa sẽ khớp với thứ tự của các bộ tham số trong chuỗi

Các tham số an toàn, mã hóa và lỗi được truyền xuống quote_via [các tham số mã hóa và lỗi chỉ được truyền khi phần tử truy vấn là a ]

Để đảo ngược quá trình mã hóa này và được cung cấp trong mô-đun này để phân tích chuỗi truy vấn thành cấu trúc dữ liệu Python

Tham khảo để tìm hiểu cách phương thức có thể được sử dụng để tạo chuỗi truy vấn của URL hoặc dữ liệu cho yêu cầu POST

Đã thay đổi trong phiên bản 3. 2. truy vấn hỗ trợ đối tượng byte và chuỗi.

Mới trong phiên bản 3. 5. thông số quote_via.

Xem thêm

WHATWG - URL Mức sống

Nhóm làm việc về Tiêu chuẩn URL xác định URL, tên miền, địa chỉ IP, định dạng ứng dụng/x-www-form-urlencoded và API của chúng

RFC 3986 - Mã định danh tài nguyên thống nhất

Đây là tiêu chuẩn hiện tại [STD66]. Mọi thay đổi đối với urllib. mô-đun phân tích cú pháp phải phù hợp với điều này. Có thể quan sát thấy một số sai lệch nhất định, chủ yếu là vì mục đích tương thích ngược và đối với một số yêu cầu phân tích cú pháp thực tế nhất định như thường thấy trong các trình duyệt chính

RFC 2732 - Định dạng cho địa chỉ IPv6 theo nghĩa đen trong URL

Điều này chỉ định các yêu cầu phân tích cú pháp của URL IPv6

RFC 2396 - Mã định danh tài nguyên thống nhất [URI]. Cú pháp chung

Tài liệu mô tả các yêu cầu cú pháp chung cho cả Tên tài nguyên đồng nhất [URN] và Bộ định vị tài nguyên đồng nhất [URL]

RFC 2368 - Lược đồ URL mailto

Yêu cầu phân tích cú pháp đối với lược đồ URL mailto

RFC 1808 - Bộ định vị tài nguyên thống nhất tương đối

Yêu cầu nhận xét này bao gồm các quy tắc để tham gia một URL tuyệt đối và tương đối, bao gồm một số lượng lớn "Ví dụ bất thường" chi phối việc xử lý các trường hợp biên giới

Làm cách nào để trích xuất URL từ một chuỗi trong Python?

Hàm findall[] được sử dụng để tìm tất cả các phiên bản khớp với biểu thức chính quy và nó trích xuất các URL từ văn bản của chuỗi để đặt nó vào một mảng . Trích xuất URL đạt được từ một tệp văn bản bằng cách sử dụng cụm từ thông dụng. Biểu thức tìm nạp văn bản ở bất cứ nơi nào nó khớp với mẫu.

Làm cách nào để trích xuất URL từ chuỗi?

Nếu không có URL nào trong chuỗi, hãy in “-1”. .
Tạo một ArrayList trong Java và biên dịch biểu thức chính quy bằng Pattern. .
Khớp chuỗi đã cho với biểu thức chính quy. .
Tìm chuỗi con từ chỉ mục đầu tiên của kết quả khớp với chỉ mục cuối cùng của kết quả khớp và thêm chuỗi con này vào danh sách

Làm cách nào để chuyển đổi chuỗi thành URL trong Python?

Trong Python 3+, Bạn có thể mã hóa URL bất kỳ chuỗi nào bằng cách sử dụng hàm quote[] do urllib cung cấp. phân tích cú pháp gói . Hàm quote[] theo mặc định sử dụng lược đồ mã hóa UTF-8.

Làm cách nào để lấy tên miền từ URL trong Python?

Chúng tôi chia đầu tiên bởi http. // để loại bỏ nó khỏi chuỗi. Sau đó, chúng tôi chia theo / để xóa tất cả các phần thư mục hoặc thư mục con của chuỗi và sau đó [-2] có nghĩa là chúng tôi lấy mã thông báo cuối cùng thứ hai sau một. và nối nó với mã thông báo cuối cùng để cung cấp cho chúng tôi miền cấp cao nhất

Chủ Đề