2011-01-19 89 views
2

如何翻錄類似http://www.facebook.com/pages/create.php的URL以產生如下結果:www.facebook.com從特定分隔符中拆分

我試過這種方法,但不工作:

line.split('/', 2)[2] 

我的問題可能出在兩個斜線//和一些URL,從WWW字符串開始。

感謝您的幫助,阿迪亞

+0

[如何拆分網址](http:/ /stackoverflow.com/questions/286150/how-to-split-a-web-address) – SilentGhost 2011-01-19 14:19:31

+0

不完全重複,我們應該解決如何處理缺少的'http://'的URL'從'開始www string'。只使用urlparse不會覆蓋。 – PaulMcG 2011-01-19 14:25:57

回答

8

你可能想看看Python的urlparse模塊。

>>> from urlparse import urlparse 
>>> o = urlparse('http://www.facebook.com/pages/create.php') 
>>> o.netloc 
'www.facebook.com' 
1

也許是最好的選擇將是從一個正則表達式返回服務器部分,即

\/[a-z0-9\-\.]*[a-zA-Z0-9\-]+\.[a-z]{2,3}\/ 

,可以覆蓋www.facebook.com,facebook.com,some-domain.tv,WWW .some-domain.net等。

注:頭部和尾部的斜線是正則表達式的一部分,而不是正則表達式分隔符。

1

嘗試:

line.split("//", 1)[-1].split("/", 1)[0] 
0

我會做:

ch[7 if ch[0:7]=='http://' else 0:].partition('/')[0] 

我不知道它是適用於所有的情況下,你會遇到

另外:

ch[(ch[0:7]=='http://')*7:].partition('/')[0]