標準ライブラリurllib.parseには、URLの解析をするための関数が用意されている。
import urllib.parse
url = urllib.parse.urlparse('http://www.example.jp:80/test/path?q=some value&r=http://[email protected]/&search=a+b,c;$')
# => ParseResult(scheme='http', netloc='www.example.jp:80', path='/test/path', params='', query='q=some value&r=http://[email protected]/&search=a+b,c;$', fragment='')
urllib.parse.urlsplit('http://www.example.jp:80/test/path?q=some value&r=http://[email protected]/&search=a+b,c;$')
# => SplitResult(scheme='http', netloc='www.example.jp:80', path='/test/path', query='q=some value&r=http://[email protected]/&search=a+b,c;$', fragment='')
urllib.parse.parse_qs('key1=value1&key2=&test%3Da%26da%20a a=xyz')
# => {'key1': ['value1'], 'test=a&da a a': ['xyz']}
urllib.parse.parse_qs('key1=value1&key2=&test%3Da%26da%20a a=xyz', keep_blank_values=True)
# => {'key1': ['value1'], 'key2': [''], 'test=a&da a a': ['xyz']}
urllib.parse.parse_qsl('key1=value1&key2=&test%3Da%26da%20a a=xyz')
# => [('key1', 'value1'), ('test=a&da a a', 'xyz')]
urllib.parse.parse_qsl('key1=value1&key2=&test%3Da%26da%20a a=xyz', keep_blank_values=True)
# => [('key1', 'value1'), ('key2', ''), ('test=a&da a a', 'xyz')]
urllib.parse.urlunparse(('http', 'www.example.jp:80', '/test/path', '', 'q=some value&r=http://[email protected]
# => 'http://www.example.jp:80/test/path?q=some value&r=http://[email protected]/&search=a+b,c;$'
urllib.parse.urlunsplit(('http', 'www.example.jp:80', '/test/path', '', 'q=some value&r=http://[email protected]/&search=a+b,c;$'))
# => 'http://www.example.jp:80/test/path#q=some value&r=http://[email protected]/&search=a+b,c;$'
urllib.parse.urljoin('https://www.example.jp/a/b/c.txt','/x/y.txt')
# => 'https://www.example.jp/x/y.txt'
urllib.parse.urljoin('https://www.example.jp/a/b/c.txt','x/y.txt')
# => 'https://www.example.jp/a/b/x/y.txt'
data = {}
data['key1'] = 'value1'
data['key2'] = 'value2'
urllib.parse.urlencode(data) # => key1=value1&key2=value2
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント