2013-07-13 24 views
0

我正在使用python從IMDb上刮掉一些信息,並且正在尋找替換給定的文本+12個字符,並且後面跟着一個空格。這可能嗎?這裏有一個例子:python string.replace()一個字符串+ 12個字符以下

我有串

'<a href="/name/nm2142796/">Santino Rice</a> tells Roxxxy Andrews that she was "like Chewbaca in drag."' 

,並想取代'<a href="/name/nm2142796/">''',但有沒有辦法做這樣的事情:

string.replace('<a href="/name/'+12,'') 

它出現相當多,但nm#######總是不同(它始終是7個數字,儘管如此)。

+0

怎麼樣''? –

+0

是啊,這很容易'string.replace('','')'哈哈 – rjbogz

+0

你讀過[使用條件](http://www.imdb.com/help/show_article?conditions):**機器人和屏幕刮取**:除非獲得我們明確的書面同意,否則您不得在本網站上使用數據挖掘,機器人,屏幕抓取或類似的數據收集和提取工具。 –

回答

3

這是嚴格需要的資料要求:

import re 
re.sub('<a href="/name/.{9}', '', string) 

替換字符串和9個字符。

re.sub('<a href="/name/[^>]*>', '', string) 

也可以工作,不依賴於許多字符。

但是,當然最好使用html解析而不是嘗試使用字符串操作來清理html。例如BeautifulSoup,或lxml,htmlparser ...挑一個。

+0

啊當然,正則表達式。出於某種原因,我甚至都沒有想到。謝謝! – rjbogz

+0

會是'{12}'雖然包含額外的'/'>' – rjbogz

+0

啊,沒辦法多做一次嗎? – rjbogz

1

如果你想保持正則表達式出來的,你可以做這樣的事情:

string.replace('<a href="/name/','')[12:] 

或者你可以替換使用正則表達式:

import re 
re.sub(r'<a href="/name/nm[\d]+/">', '', string) 
+0

好吧,正則表達式不是太麻煩了,但'string.replace(' rjbogz

+0

另外,請參閱我對mata答案的評論,有沒有辦法讓正則表達式替換所有的事件? – rjbogz

+0

@ user1911612 - 它_does_ – mata

相關問題