在Python 2.x中拆分URL

时间:2015-06-06 21:05:50

标签: python python-2.7 urlparse

我在某些HTML代码中解析了一个链接,如下所示: -

"http://advert.com/go/2/12345/0/http://truelink.com/football/abcde.html?"

我要做的是从第二次出现http开始提取代码的第二部分:所以在上面的例子中,我想提取

"http://truelink.com/football/abcde.html?"

我考虑过将URL切成段但是我不确定随着时间的推移,结构将与第一部分保持一致。

是否有可能识别第二次出现'http'然后从那里解析出代码到底?

2 个答案:

答案 0 :(得分:3)

link = "http://advert.com/go/2/12345/0/http://truelink.com/football/abcde.html?"

link[link.rfind("http://"):]

返回:

"http://truelink.com/football/abcde.html?"

这就是我要做的。 rfind找到" http"的最后一次出现并返回索引。 这个事件显然是你的例子中真实的原始网址。然后,您可以提取以该索引开头的子字符串,直到结束。

因此,如果您有一些字符串myStr,则在python中使用类似数组的表达式提取子字符串:

myStr[0]    # returns the first character
myStr[0:5]  # returns the first 5 letters, so that 0 <= characterIndex < 5
myStr[5:]   # returns all characters from index 5 to the end of the string
myStr[:5]   # is the same like myStr[0:5]

答案 1 :(得分:0)

我会做这样的事情:

addr = "http://advert.com/go/2/12345/0/http://truelink.com/football/abcde.html?"
httpPart = 'http://'
split = addr.split(httpPart)
res = []
for str in split:
    if (len(str) > 0):
        res.append(httpPart+str);
print res