I have an URL for example:
http://name.abc.wxyz:1234/Assts/asset.epx?id=F3F94D94-7232-4FA2-98EF-07sdfssfdsa3B5
From this Url I want to extract only 'asset.epx?id=F3F94D94-7232-4FA2-98EF-07sdfssfdsa3B5
' how could i do that?
I am still learning regular expressions and I am not able to solve the above. Any suggestions would be appreciated.
You can use urlparse
assuming asset.epx
is the same:
>>> import urlparse
>>> url = 'http://name.abc.wxyz:1234/Assts/asset.epx?id=F3F94D94-7232-4FA2-98EF-07sdfssfdsa3B5'
>>> res = urlparse.urlparse(url)
>>> print 'asset.epx?'+res.query
asset.epx?id=F3F94D94-7232-4FA2-98EF-07sdfssfdsa3B5
This is useful if you ever need other information from the url (You can print res
to check out the other info you can get ;))
If you're using Python 3 though, you'll have to do from urllib.parse import urlparse
.
In this specific example splitting the string is enough:
url.split('/')[-1]
If you have a more complex URL I would recommend the yarl library for parsing it:
>>> import yarl # pip install yarl
>>> url = yarl.URL('http://name.abc.wxyz:1234/Assts/asset.epx?id=F3F94D94-7232-4FA2-98EF-07sdfssfdsa3B5')
>>> url.path_qs
'/Assts/asset.epx?id=F3F94D94-7232-4FA2-98EF-07sdfssfdsa3B5'
You could also use the builtin urllib.parse
library but I find that it gets in the way once you start doing complex things like:
>>> url.update_query(asd='foo').with_fragment('asd/foo/bar')
URL('http://name.abc.wxyz:1234/Assts/asset.epx?id=F3F94D94-7232-4FA2-98EF-07sdfssfdsa3B5&asd=foo#asd/foo/bar')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With