2013-10-15 12 views
5

Una domanda complicata sulle regex. Ho url di un tale modello:Come trovare l'URL in un altro URL?

http://www.domain.com/img?res=high&refurl=http://www.ahother_domain.com/page/&imgurl=http://www.one_more.com/static/images/mercedes.jpg&w=640&h=480

come posso estrarre imgurl valore?

+6

Usa un parser URL - i valori saranno disponibili come interrogazione parametri. L'utilizzo di un parser * effettivo * è importante in quanto si prenderà cura delle regole di codifica. – user2864740

+0

è sempre un parametro 'refurl'? – Dropout

+0

@Dropout è sempre come parametro 'imgurl'. –

risposta

5

Date un'occhiata a urlparse

http://docs.python.org/2/library/urlparse.html

Si può facilmente dividere il tuo URL in parametri e poi estratto valido qualunque cosa avete bisogno.

Esempio:

import urlparse 
url = "http://www.domain.com/img?res=high&refurl=http://www.ahother_domain.com/page/&imgurl=http://www.one_more.com/static/images/mercedes.jpg&w=640&h=480" 
urlParams = urlparse.parse_qs(urlparse.urlparse(url).query) 
urlInUrl = urlParams['imgurl'] 
print urlInUrl 
+0

Dovrebbe essere un commento. Non fornisci alcun esempio o nulla. – aIKid

+0

Spiacente, l'ho modificato per la sua richiesta specifica. – Dropout

3

Questa soluzione asssumes che il valore imgurl parametri sta sempre seguita da params dimensioni quali: &w=...:

import re 
re.findall('imgurl=([^&]+)&', url) 
+0

http://example.com/imgurl=foo/?imgurl=bar&imgurl=baz – atk

Problemi correlati