2009-01-24 28 views
49

Python'da bu şekilde çalışan bir kitaplık var mı?Göreli url yolunu mutlak yoluna çözümleme

>>> resolvePath("http://www.asite.com/folder/currentpage.html", "anotherpage.html") 
'http://www.asite.com/folder/anotherpage.html' 
>>> resolvePath("http://www.asite.com/folder/currentpage.html", "folder2/anotherpage.html") 
'http://www.asite.com/folder/folder2/anotherpage.html' 
>>> resolvePath("http://www.asite.com/folder/currentpage.html", "/folder3/anotherpage.html") 
'http://www.asite.com/folder3/anotherpage.html' 
>>> resolvePath("http://www.asite.com/folder/currentpage.html", "../finalpage.html") 
'http://www.asite.com/finalpage.html' 

cevap

85

Evet, urlparse.urljoin, ya kopyala-yapıştır için Python 3.

>>> try: from urlparse import urljoin # Python2 
... except ImportError: from urllib.parse import urljoin # Python3 
... 
>>> urljoin("http://www.asite.com/folder/currentpage.html", "anotherpage.html") 
'http://www.asite.com/folder/anotherpage.html' 
>>> urljoin("http://www.asite.com/folder/currentpage.html", "folder2/anotherpage.html") 
'http://www.asite.com/folder/folder2/anotherpage.html' 
>>> urljoin("http://www.asite.com/folder/currentpage.html", "/folder3/anotherpage.html") 
'http://www.asite.com/folder3/anotherpage.html' 
>>> urljoin("http://www.asite.com/folder/currentpage.html", "../finalpage.html") 
'http://www.asite.com/finalpage.html' 

için urllib.parse.urljoin: Bir RFC 3986 ve unicode uyumlu değiştirilmesi için

try: 
    from urlparse import urljoin # Python2 
except ImportError: 
    from urllib.parse import urljoin # Python3 
+0

, [bkz uritools] (http://pythonhosted.org/uritools/). – Marian

+0

İkinci bileşen mutlak ise, bu işe yaramaz. Örneğin, urljoin ("http://example.com/blah.html", "./././ whoa.html") * *, noktaları kaldırırken, urljoin ("http: // example") .com/blah.html "," /./././ whoa.html ") değil. – obskyr

İlgili konular