2008-11-13 68 views
2

所以我使用python來做一些網頁解析,我想將完整的網址分成兩部分。說我有地址http://www.stackoverflow.com/questions/ask。我需要協議和域名(例如http://www.stackoverflow.com)和路徑(例如/ questions/ask)。我想這可能是通過一些正則表達式來解決的,但我並不那麼方便。有什麼建議麼?如何拆分網址

+0

重複。請參閱http://stackoverflow.com/questions/258746/slicing-url-with-python和http://stackoverflow.com/questions/163009/urllib2-file-name – 2008-11-13 10:57:44

回答

0
import re 
url = "http://stackoverflow.com/questions/ask" 
protocol, domain = re.match(r"(http://[^/]*)(.*)", url).groups() 
7

使用Python模塊裏urlparse:

https://docs.python.org/library/urlparse.html

對於這樣一個明確的和見多識廣的問題,不編寫自己的代碼麻煩,更何況自己的正表達式。他們造成太多麻煩;-)。

12

丹是正確的:是裏urlparse您的朋友:

>>> from urlparse import urlparse 
>>> 
>>> parts = urlparse("http://www.stackoverflow.com/questions/ask") 
>>> parts.scheme + "://" + parts.netloc 
'http://www.stackoverflow.com' 
>>> parts.path 
'/questions/ask' 
+0

得愛電池包括哲學。我認爲最初的b/c正則表達式我不知道電池是否包含在內。謝謝。 – 2008-11-13 18:22:03