[Python]URLとクエリパラメータをパースしたりエスケープしたりする

PythonでのURLやクエリパラメータの解析やパース、エンコーディングの方法を説明します。

前提条件

  • Python:3.9.1

urllib.parseをインポートして使用します。

import urllib.parse

URLをパースする

urllib.parse.urlparse("http://example.com/test.html?foo=bar&hoge=piyo")

# ParseResult(scheme='http', netloc='example.com', path='/test.html', params='', query='foo=bar&hoge=piyo', fragment='')

クエリパラメータをパースする

urllib.parse.parse_qs('foo=bar&hoge=piyo')

# {'foo': ['bar'], 'hoge': ['piyo']}

辞書(dict)からクエリパラメータを作成する

urllib.parse.urlencode(dict(query='クエリサンプル'))

# 'query=%E3%82%AF%E3%82%A8%E3%83%AA%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB'

パーセントエンコーディングされた文字列を変換する

sample = urllib.parse.quote('クエリサンプル')

print(sample)
# %E3%82%AF%E3%82%A8%E3%83%AA%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB

result = urllib.parse.unquote(sample)

print(result)
# クエリサンプル

最後に

URLやクエリパラメータを解析したりするのに必須の知識だと思うので、urllib.parseの使い方はしっかり覚えておきたいですね。

コメントする

メールアドレスが公開されることはありません。