pythonstrip

Strip a specific part from a url string in python


Im passing through some urls and I'd like to strip a part of it which dynamically changes so I don't know it firsthand. An example url is:

https://...?pid=2&gid=lostchapter&lang=en_GB&practice=1&channel=desktop&demo=2

And I'd like to strip the gid=lostchapter part without any of the rest.

How do I do that?


Solution

  • You can use urllib to convert the query string into a Python dict and access the desired item:

    In [1]: from urllib import parse
    
    In [2]: s = "https://...?pid=2&gid=lostchapter&lang=en_GB&practice=1&channel=desktop&demo=2"
    
    In [3]: q = parse.parse_qs(parse.urlsplit(s).query)
    
    In [4]: q
    Out[4]:
    {'pid': ['2'],
     'gid': ['lostchapter'],
     'lang': ['en_GB'],
     'practice': ['1'],
     'channel': ['desktop'],
     'demo': ['2']}
    
    In [5]: q["gid"]
    Out[5]: ['lostchapter']