0

I'm trying to write a method that will extract the query parameters from a URL (php?id=2, admin?id=34&page=2, etc..). What I have so far will do just that unless the php part doesn't have a . for example it will work on https://example.com/subcat.php?id=2 but not on http://examples2.com/php?admin=2.

def obtain_inject_query(url):
    queries = url.split("?")
    data = queries[0].rsplit(".")[-1]
    print ''.join(data) + "?" + queries[1]
    # obtain_inject_query("https://example.com/admin?qt=123&america=1234")
    # <= com/admin?qt=123&america=1234
    # obtain_inject_query("https://example.com/subcat.admin?qt=123&america=1234")
    # <= admin?qt=123&america=1234

How can I fix this to where it will only extract the query and not the com part?

User9123
  • 515
  • 2
  • 6
  • 14

1 Answers1

2

What about using the urlparse module:

>>> from urlparse import urlparse
>>> o = urlparse('http://examples2.com/php?admin=2')
>>> o
ParseResult(scheme='http', netloc='examples2.com', path='/php', params='', query='admin=2', fragment='')
>>> o.query
'admin=2'
CJ Edgerton
  • 400
  • 3
  • 11