1. ホーム
  2. python

[解決済み] Python で与えられた URL にパラメータを追加する

2022-04-27 15:36:33

質問

あるURLが渡されたとします。

すでにGETパラメータを持っているかもしれない(例えば http://example.com/search?q=question ) またはそうでない場合 (例. http://example.com/ ).

そして、今度はこれにいくつかのパラメータを追加する必要があります。 {'lang':'en','tag':'python'} . 最初のケースで私は http://example.com/search?q=question&lang=en&tag=python で、2番目の http://example.com/search?lang=en&tag=python .

何か標準的な方法はないのでしょうか?

どのように解決するのですか?

には、いくつかの癖があります。 urlliburlparse モジュールを使用します。以下は動作例です。

try:
    import urlparse
    from urllib import urlencode
except: # For Python 3
    import urllib.parse as urlparse
    from urllib.parse import urlencode

url = "http://stackoverflow.com/search?q=question"
params = {'lang':'en','tag':'python'}

url_parts = list(urlparse.urlparse(url))
query = dict(urlparse.parse_qsl(url_parts[4]))
query.update(params)

url_parts[4] = urlencode(query)

print(urlparse.urlunparse(url_parts))

ParseResult の結果は urlparse() , は読み取り専用 に変換する必要があります。 list そのデータを変更する前に