2017-01-10 11 views
0

Я пытаюсь написать метод, который будет извлекать параметры запроса из URL-адреса (php?id=2, admin?id=34&page=2 и т. Д.). То, что я до сих пор буду делать, только если у php-части нет ., например, она будет работать на https://example.com/subcat.php?id=2, но не на http://examples2.com/php?admin=2.Извлечение запросов из URL

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 

Как я могу это исправить, где он будет только извлечь запрос и не com часть?

ответ

2

Что об использовании urlparse модуля:

>>> 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' 
+0

Я даже не знал о существовании – User9123

+0

Если вы используете использовать Python 3 'urllib.parse', Документы находятся [здесь] (https://docs.python.org/3/library/urllib.parse.html#module-urllib.parse). –

Смежные вопросы