Pythonにて、URLの取り扱い方をまとめて紹介します。
クエリの取得
URLからクエリパラメーターを取得します。
クエリパラメーターとは
http://httpbin.org/get?key_1=1&key_2=%E3%81%82%E3%81%84%E3%81%86
のURLの内
key_1=1&key_2=%E3%81%82%E3%81%84%E3%81%86
にあたる部分を言います。
キー名称key_1
に値1
が、
キー名称key_2
に、値%E3%81%82%E3%81%84%E3%81%86
が格納されています。
クエリパラメータの取得には、urllibを使用します。
urllibは標準ライブラリのため、pip
などで別途インストールする必要はありません。
以下のプログラムでは、
urllib.parse.urlparse(url).query
でクエリパラメータを取得し
urllib.parse.parse_qs(queries)
でクエリパラメータを辞書型(dict)に変換します。
また、dictの値はlistで格納されている点に注意です。
後述しますがエンコードされた%E3%81%82%E3%81%84%E3%81%86
は、
デコードされて格納されます。
URLのエンコード・デコード
URLエンコード・デコードとは
URLでは、日本語の文字列を使用できません。
このため、URLで使用可能な文字列に符号化します。この処理をURLエンコードといいます。
特にURLの場合%E3
のように%
を使用した形に変換されるため
パーセントエンコーディングと言います。
URLデコードは、エンコードした文字列を元の文字列に戻すことを言います。
-
URLエンコード:URLで使用できない文字列を符号化する
あいう
→%E3%81%82%E3%81%84%E3%81%86
-
URLエンコード:符号化された文字列を元に戻す
%E3%81%82%E3%81%84%E3%81%86
→あいう
URLエンコード
URLエンコードは先ほどと同様にurllibを用います。
urllib.parse.quote(string)
で日本語をURLエンコードします。
URLデコード
URLデコードは先ほどと同様にurllibを用います。
urllib.parse.unquote(string_quote)
でエンコードをURLデコードします。
0 件のコメント :
コメントを投稿