Tengo dos direcciones:Cómo unir URL absolutas y relativas?
url1 = "http://127.0.0.1/test1/test2/test3/test5.xml"
url2 = "../../test4/test6.xml"
¿Cómo puedo obtener una URL absoluta para url2?
Tengo dos direcciones:Cómo unir URL absolutas y relativas?
url1 = "http://127.0.0.1/test1/test2/test3/test5.xml"
url2 = "../../test4/test6.xml"
¿Cómo puedo obtener una URL absoluta para url2?
Debe utilizar urlparse.urljoin:
>>> import urlparse
>>> urlparse.urljoin(url1, url2)
'http://127.0.0.1/test1/test4/test6.xml'
con Python 3 (donde urlparse is renamed to urllib.parse) usted podría use it as follow:
>>> import urllib.parse
>>> urllib.parse.urljoin(url1, url2)
'http://127.0.0.1/test1/test4/test6.xml'
¿Cómo usamos 'urljoin' con 3 o parámetros de modo o qué biblioteca se recomienda para esto? –
@mesuutt intenta hacer un ciclo y unir cada parte con la URL previamente unida. –
@ CédricJulien: un bucle simple no funcionará, ya que cualquier ruta con un '/' inicial se "reiniciará" y se devolverá el esquema + netloc + lasturl: 'urlparse.urljoin ('http://www.a.com/b/ c/d ','/e ') =>' http: // www.a.com/e'' – MestreLion
>>> from urlparse import urljoin
>>> url1 = "http://www.youtube.com/user/khanacademy"
>>> url2 = "/user/khanacademy"
>>> urljoin(url1, url2)
'http://www.youtube.com/user/khanacademy'
simple.
es = ['http://127.0.0.1', 'test1', 'test4', 'test6.xml']
base = ''
map(lambda e: urlparse.urljoin(base, e), es)
posible duplicado de [Cómo unir componentes de un camino cuando se está construyendo una URL en Python] (http://stackoverflow.com/questions/1793261/how-to-join-components-of-a -path-when-you-are-construction-a-url-in-python) –
Relacionado: [Unir inteligentemente los componentes de la ruta url] (http://codereview.stackexchange.com/questions/13027/joining-url-path- componentes-inteligentemente) – kojiro