2015-06-06 2 views
-1

У меня есть ссылка разбираемый в некоторых HTML-код, как показано ниже: -Разделить URL в Python 2.x

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

То, что я ищу, чтобы сделать, это извлечь вторую часть кода, начиная со второй появление HTTP: так и в предыдущем случае, я хочу, чтобы извлечь

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

Я рассмотрел нарезку URL на сегменты, однако я не уверен структура будет оставаться такими же с первой частью, как время идет.

Возможно ли идентифицировать второе появление «http», а затем разобрать код оттуда до конца?

+1

Просто из любопытства - как вы попали в такую ​​строку? :) –

ответ

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» и возвращает индекс. Это, очевидно, настоящий, оригинальный URL-адрес в вашем примере. Затем вы можете извлечь подстроку, начинающуюся с этого индекса, до конца.

Так что если у вас есть строка myStr подстроки извлекается в питона с выражением массива типа:

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] 
+0

Что делать, если URL-адрес '' http://advert.com/go/2/12345/0/http://truelink.com/football/http? '? – vaultah

+0

Тогда я бы изменил rfind («http») на rfind («http: //») – daniel451

+0

@ascenator, и это должно быть вашим фактическим ответом :) –

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 
Смежные вопросы