Hướng dẫn how do i encode a url in python? - làm cách nào để mã hóa url trong python?

Hướng dẫn how do i encode a url in python? - làm cách nào để mã hóa url trong python?

Show

Mã hóa URL thường là cần thiết khi bạn gọi API từ xa với các chuỗi truy vấn bổ sung hoặc tham số đường dẫn. Bất kỳ chuỗi truy vấn hoặc tham số đường dẫn nào được đặt trong URL phải được mã hóa URL đúng cách.

Mã hóa URL cũng được yêu cầu trong khi chuẩn bị dữ liệu để gửi với loại MIME

>> urllib.parse.quote('/')
'/'
0.

Trong bài viết này, bạn sẽ học cách mã hóa các thành phần URL trong Python. Bắt đầu nào!

Các chuỗi truy vấn mã hóa URL hoặc các tham số hình thức trong Python (3+)

Trong Python 3+, bạn có thể mã hóa URL bất kỳ chuỗi nào bằng hàm

>> urllib.parse.quote('/')
'/'
1 được cung cấp bởi gói
>> urllib.parse.quote('/')
'/'
2. Hàm
>> urllib.parse.quote('/')
'/'
1 theo mặc định sử dụng sơ đồ mã hóa
>> urllib.parse.quote('/')
'/'
4.

Hãy để xem một ví dụ -

>>> import urllib.parse
>>> query = 'Hellö Wörld@Python'
>>> urllib.parse.quote(query)
'Hell%C3%B6%20W%C3%B6rld%40Python'

Lưu ý rằng, chức năng

>> urllib.parse.quote('/')
'/'
1 xem xét an toàn nhân vật
>> urllib.parse.quote('/')
'/'
6 theo mặc định. Điều đó có nghĩa là, nó không mã hóa ký tự
>> urllib.parse.quote('/')
'/'
6 -
-

>> urllib.parse.quote('/')
'/'

Hàm

>> urllib.parse.quote('/')
'/'
1 chấp nhận một tham số được đặt tên có tên là Safe có giá trị mặc định là
>> urllib.parse.quote('/')
'/'
6. Nếu bạn cũng muốn mã hóa ký tự
>> urllib.parse.quote('/')
'/'
6, thì bạn có thể làm như vậy bằng cách cung cấp một chuỗi trống trong tham số an toàn như thế này-

>>> urllib.parse.quote('/', safe='')
'%2F'

Mã hóa các ký tự không gian thành dấu cộng (>>> urllib.parse.quote('/', safe='') '%2F'1) bằng hàm >>> urllib.parse.quote('/', safe='') '%2F'2

Hàm

>> urllib.parse.quote('/')
'/'
1 mã hóa các ký tự không gian thành
>>> urllib.parse.quote('/', safe='')
'%2F'
4. Nếu bạn muốn mã hóa các ký tự không gian thành dấu cộng (
>>> urllib.parse.quote('/', safe='')
'%2F'
1), thì bạn có thể sử dụng một chức năng khác có tên
>>> urllib.parse.quote('/', safe='')
'%2F'
6 được cung cấp bởi gói
>> urllib.parse.quote('/')
'/'
2.

>>> import urllib.parse
>>> query = 'Hellö Wörld@Python'
>>> urllib.parse.quote_plus(query)
'Hell%C3%B6+W%C3%B6rld%40Python'

Đọc: Khi nào nên mã hóa không gian thành Plus (+) hoặc %20? When to encode space to plus (+) or %20?

Mã hóa nhiều tham số cùng một lúc

Bạn có thể mã hóa nhiều tham số cùng một lúc bằng hàm

>>> urllib.parse.quote('/', safe='')
'%2F'
8. Đây là một hàm tiện lợi có một từ điển của các cặp giá trị chính hoặc một chuỗi các bộ dữ liệu hai phần tử và sử dụng hàm
>>> urllib.parse.quote('/', safe='')
'%2F'
2 để mã hóa mọi giá trị. Chuỗi kết quả là một loạt các cặp
>>> import urllib.parse
>>> query = 'Hellö Wörld@Python'
>>> urllib.parse.quote_plus(query)
'Hell%C3%B6+W%C3%B6rld%40Python'
0 được phân tách bằng ký tự
>>> import urllib.parse
>>> query = 'Hellö Wörld@Python'
>>> urllib.parse.quote_plus(query)
'Hell%C3%B6+W%C3%B6rld%40Python'
1.

Hãy để xem một ví dụ -

>>> import urllib.parse
>>> params = {'q': 'Python URL encoding', 'as_sitesearch': 'www.urlencoder.io'}
>>> urllib.parse.urlencode(params)
'q=Python+URL+encoding&as_sitesearch=www.urlencoder.io'

Lưu ý rằng, chức năng

>> urllib.parse.quote('/')
'/'
1 xem xét an toàn nhân vật
>> urllib.parse.quote('/')
'/'
6 theo mặc định. Điều đó có nghĩa là, nó không mã hóa ký tự
>> urllib.parse.quote('/')
'/'
6 -

urllib.parse.urlencode(params, quote_via=urllib.parse.quote)

Hàm
>> urllib.parse.quote('/')
'/'
1 chấp nhận một tham số được đặt tên có tên là Safe có giá trị mặc định là
>> urllib.parse.quote('/')
'/'
6. Nếu bạn cũng muốn mã hóa ký tự
>> urllib.parse.quote('/')
'/'
6, thì bạn có thể làm như vậy bằng cách cung cấp một chuỗi trống trong tham số an toàn như thế này-

Mã hóa các ký tự không gian thành dấu cộng (

>>> urllib.parse.quote('/', safe='')
'%2F'
1) bằng hàm
>>> urllib.parse.quote('/', safe='')
'%2F'
2

>>> import urllib.parse
>>> params = {'name': 'Rajeev Singh', 'phone': ['+919999999999', '+628888888888']}
>>> urllib.parse.urlencode(params, doseq=True)
'name=Rajeev+Singh&phone=%2B919999999999&phone=%2B628888888888'

Hàm >> urllib.parse.quote('/') '/'1 mã hóa các ký tự không gian thành >>> urllib.parse.quote('/', safe='') '%2F'4. Nếu bạn muốn mã hóa các ký tự không gian thành dấu cộng (>>> urllib.parse.quote('/', safe='') '%2F'1), thì bạn có thể sử dụng một chức năng khác có tên >>> urllib.parse.quote('/', safe='') '%2F'6 được cung cấp bởi gói >> urllib.parse.quote('/') '/'2.

Đọc: Khi nào nên mã hóa không gian thành Plus (+) hoặc %20?

Mã hóa nhiều tham số cùng một lúc

  1. urllib.quote()

    >>> import urllib
    >>> urllib.quote('Hello World@Python2')
    'Hello%20World%40Python2'

  2. Bạn có thể mã hóa nhiều tham số cùng một lúc bằng hàm

    >>> urllib.parse.quote('/', safe='')
    '%2F'
    8. Đây là một hàm tiện lợi có một từ điển của các cặp giá trị chính hoặc một chuỗi các bộ dữ liệu hai phần tử và sử dụng hàm
    >>> urllib.parse.quote('/', safe='')
    '%2F'
    2 để mã hóa mọi giá trị. Chuỗi kết quả là một loạt các cặp
    >>> import urllib.parse
    >>> query = 'Hellö Wörld@Python'
    >>> urllib.parse.quote_plus(query)
    'Hell%C3%B6+W%C3%B6rld%40Python'
    0 được phân tách bằng ký tự
    >>> import urllib.parse
    >>> query = 'Hellö Wörld@Python'
    >>> urllib.parse.quote_plus(query)
    'Hell%C3%B6+W%C3%B6rld%40Python'
    1.

    >>> import urllib
    >>> urllib.quote_plus('Hello World@Python2')
    'Hello+World%40Python2'

  3. Nếu bạn muốn chức năng

    >>> import urllib.parse
    >>> query = 'Hellö Wörld@Python'
    >>> urllib.parse.quote_plus(query)
    'Hell%C3%B6+W%C3%B6rld%40Python'
    2 sử dụng hàm
    >> urllib.parse.quote('/')
    '/'
    1 cho các tham số mã hóa, thì bạn có thể làm như vậy như thế này -

    >>> import urllib
    >>> params = {'q': 'Python 2.x URL encoding', 'as_sitesearch': 'www.urlencoder.io'}
    >>> urllib.urlencode(params)
    'q=Python+2.x+URL+encoding&as_sitesearch=www.urlencoder.io'

Mã hóa nhiều tham số cùng một lúc trong đó một tham số có thể có nhiều giá trị

Hàm >>> import urllib.parse >>> query = 'Hellö Wörld@Python' >>> urllib.parse.quote_plus(query) 'Hell%C3%B6+W%C3%B6rld%40Python'2 có một đối số tùy chọn gọi là >>> import urllib.parse >>> query = 'Hellö Wörld@Python' >>> urllib.parse.quote_plus(query) 'Hell%C3%B6+W%C3%B6rld%40Python'5. Nếu đầu vào của bạn có thể có nhiều giá trị cho một khóa duy nhất, thì bạn nên đặt đối số >>> import urllib.parse >>> query = 'Hellö Wörld@Python' >>> urllib.parse.quote_plus(query) 'Hell%C3%B6+W%C3%B6rld%40Python'5 thành >>> import urllib.parse >>> query = 'Hellö Wörld@Python' >>> urllib.parse.quote_plus(query) 'Hell%C3%B6+W%C3%B6rld%40Python'7 để tất cả các giá trị được mã hóa đúng -

  • Mã hóa URL trong Python 2.x
  • Trong Python 2.x Các chức năng
    >> urllib.parse.quote('/')
    '/'
    1,
    >>> urllib.parse.quote('/', safe='')
    '%2F'
    2 và
    >>> import urllib.parse
    >>> query = 'Hellö Wörld@Python'
    >>> urllib.parse.quote_plus(query)
    'Hell%C3%B6+W%C3%B6rld%40Python'
    2 có thể được truy cập trực tiếp từ gói
    >>> import urllib.parse
    >>> params = {'q': 'Python URL encoding', 'as_sitesearch': 'www.urlencoder.io'}
    >>> urllib.parse.urlencode(params)
    'q=Python+URL+encoding&as_sitesearch=www.urlencoder.io'
    1. Các chức năng này đã được tái cấu trúc thành gói
    >> urllib.parse.quote('/')
    '/'
    2 trong Python 3.
  • Các ví dụ sau đây cho thấy cách bạn có thể thực hiện mã hóa URL trong Python 2.x bằng cách sử dụng các chức năng trên.

Làm thế nào để bạn mã hóa một URL?

Vì các URL thường chứa các ký tự bên ngoài bộ ASCII, URL phải được chuyển đổi thành định dạng ASCII hợp lệ. Mã hóa URL thay thế các ký tự ASCII không an toàn với "%" theo sau là hai chữ số thập lục phân. URL không thể chứa khoảng trắng. Mã hóa URL thường thay thế một không gian bằng dấu cộng (+) hoặc với %20.URL encoding replaces unsafe ASCII characters with a "%" followed by two hexadecimal digits. URLs cannot contain spaces. URL encoding normally replaces a space with a plus (+) sign or with %20.

Làm thế nào để bạn mã hóa các tham số trong URL trong Python?

Bạn có thể mã hóa nhiều tham số cùng một lúc bằng hàm urllib.parse.urlencode ().Đây là một hàm tiện lợi có một từ điển của các cặp giá trị chính hoặc một chuỗi các bộ dữ liệu hai phần tử và sử dụng hàm QUOTE_PLUS () để mã hóa mọi giá trị.urllib. parse. urlencode() function. This is a convenience function which takes a dictionary of key value pairs or a sequence of two-element tuples and uses the quote_plus() function to encode every value.

Làm thế nào để bạn thêm %20 vào URL?

Thay vì mã hóa một không gian như là%20, bạn có thể sử dụng ký tự dành riêng cho dấu hiệu để thể hiện một không gian.Ví dụ: URL, http://www.example.com/products%20and%20Service.html cũng có thể được mã hóa dưới dạng http://www.example.com/products+and+service.html.use the plus sign reserved character to represent a space. For example, the URL “http://www.example.com/products%20and%20services.html” can also be encoded as http://www.example.com/products+and+services.html.

Làm thế nào để bạn phân tích một chuỗi vào một url trong python?

Để phân tích chuỗi truy vấn URL và nhận tham số truy vấn:..
Nhập các phương thức URLPARE và PARSE_QS từ Urllib.Mô -đun phân tích cú pháp ..
Sử dụng phương thức UrlParse để có được một đối tượng kết quả phân tích ..
Chuyển đối tượng cho phương thức pARSE_QS để lấy từ điển của các thông số truy vấn ..