2013-01-03 93 views

回答

2
import lxml.etree as et 
html=\ 
""" 
<!DOCTYPE html> 
<html> 
    <head> 
    <title>Hello HTML</title> 
    </head> 
    <body> 
    <p>Hello 1</p> 
    <p>Hello 2</p> 
    <p>Hello 3</p> 
    <p>Hello 4</p> 
    </body> 
</html> 
""" 
doc = et.fromstring(html) 
for i in doc.xpath('.//p[contains(.,"Hello") and not(contains(.,"4"))]'): 
    i.text='replaced' 
print et.tostring(doc,pretty_print=True) 

OUT:

<html> 
    <head> 
    <title>Hello HTML</title> 
    </head> 
    <body> 
    <p>replaced</p> 
    <p>replaced</p> 
    <p>replaced</p> 
    <p>Hello 4</p> 
    </body> 
</html> 
0

您可以Re模塊嘗試。或者只是使用replace函數。

但是,如果您需要替換多個關鍵字,則搜索和替換的處理效率非常低。您最好通過beautifulSouplxml解析結構,獲取對象,並對對象執行一些操作。