Как заменить значение нескольких параметров с новым значением в urlparse? - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть несколько ссылок

www.example.com/abc?file=xxxxxxxxxxxxxxx&url=xxxxxxxxxxxxxxx
www.example.com/abc?google=xxxxxxxxxxxxxxx&fb=xxxxxxxxxxxxxxx

и т. Д. Теперь я хочу изменить значение этого параметра на "xxxxxxxxxxxxxxx", как я могу это сделать? все параметры разные и в других запросах они тоже изменятся

1 Ответ

0 голосов
/ 06 февраля 2020

вот рабочий пример:

import urllib.parse as urlparse
from urllib.parse import parse_qs


def replace_params_with_x(url):
    parsed = urlparse.urlparse(url)
    params= parse_qs(parsed.query)
    modified_params={key : ["x" * len (val) for val in values] for key, values in params.items()}

    url_modified=url.split("?")[0]
    # i have params
    rplc = "&".join([ "%s=%s" % (key, val) for key, values in modified_params.items() for val in values ])
    if rplc:
        url_modified += "?" +rplc


    return url_modified

# example on a single url (applicable to any url)
url = 'www.example.com/abc?file=my_file&url=my_url'
print(replace_params_with_x(url))

вывод: www.example.com/abc?&file=xxxxxxx&url=xxxxxx

...