ホームページ  >  記事  >  バックエンド開発  >  urllib.parse.quote() 関数を使用して Python 3.x で URL をエンコードする方法

urllib.parse.quote() 関数を使用して Python 3.x で URL をエンコードする方法

WBOY
WBOYオリジナル
2023-07-31 22:46:562800ブラウズ

Python 3 で URL をエンコードするには、urllib.parse.quote() 関数を使用します。xx

ネットワーク アプリケーション開発では、URL をエンコードする必要がある状況によく遭遇します。これは、許可されている文字が原因です。は制限されており、渡す必要があるパラメータには特殊文字が含まれている可能性があります。 Python の urllib.parse モジュールは、URL 内の不正な文字を正当な URL 文字列にエンコードできる quote() 関数を提供します。この記事では、コード例を使用して、urllib.parse.quote() 関数を使用して Python 3.x で URL をエンコードする方法を紹介します。

まず、次のコード行を使用して、urllib.parse モジュールをインポートする必要があります。

from urllib.parse import quote

次に、quote() 関数を使用して URL 文字列をエンコードできます。次のコード例では、特殊文字を含む URL をエンコードし、エンコードされた結果を出力します。

url = 'http://www.example.com/?keyword=hello world'
encoded_url = quote(url)
print(encoded_url)

上記のコードを実行すると、出力は次のようになります。

http%3A//www.example.com/%3Fkeyword%3Dhello%20world

ご覧のとおり、quote( ) 関数は、URL 内の不正な文字を対応するエンコードされた文字列に置き換えます。

quote() 関数は、エンコードする必要のない文字を指定するためのオプションの安全なパラメータを受け取ることもできます。 URL エンコードでは、デフォルトでは英数字以外の文字のみがエンコードされます。一部の特殊文字をエンコードしたくない場合は、それらの文字を安全なパラメータに追加できます。例:

url = 'http://www.example.com/?query=python 3.x'
encoded_url = quote(url, safe='/:')
print(encoded_url)

上記のコードを実行すると、出力結果は次のようになります:

http://www.example.com/?query=python%203.x

安全なパラメーターに文字 '/' と ':' を指定したため、これがわかります。これらの文字はエンコード時に使用され、文字は置き換えられません。

さらに、quote() 関数は 2 つのエンコード モードも提供します。デフォルトでは UTF-8 エンコードが使用され、他のエンコード方法も指定できます。例:

url = 'http://www.example.com/?query=你好'
encoded_url = quote(url, encoding='gbk')
print(encoded_url)

上記のコードを実行すると、出力結果は次のようになります:

http%3A%2F%2Fwww.example.com%2F%3Fquery%3D%B2%E2%CA%D4

ご覧のとおり、gbk エンコードを使用しているため、エンコード結果は上記の例とは異なります。

要約すると、Python 3.x の urllib.parse.quote() 関数は、URL を簡単にエンコードし、不正な文字を正当な URL 文字列に変換できます。この記事の紹介とコード例を通じて、読者はこの関数を使用して Python で URL をエンコードする方法を習得したと思います。実際の開発では、渡されたパラメータによって URL の形式やセマンティクスが破壊されないように、必要に応じて URL を柔軟にエンコードできます。

参考資料:

  • [Python 公式ドキュメント - urllib.parse](https://docs.python.org/3/library/urllib.parse.html)

以上がurllib.parse.quote() 関数を使用して Python 3.x で URL をエンコードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。