可能重複:
How to find/replace text in html while preserving html tags/structure搜索和替換HTML文本,而不是標籤
我要搜索,並通過HTML文本替換。我不想擺弄標籤或他們的屬性,只是HTML文本。我應該如何在Python中做到這一點?
可能重複:
How to find/replace text in html while preserving html tags/structure搜索和替換HTML文本,而不是標籤
我要搜索,並通過HTML文本替換。我不想擺弄標籤或他們的屬性,只是HTML文本。我應該如何在Python中做到這一點?
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>
但是,如果您需要替換多個關鍵字,則搜索和替換的處理效率非常低。您最好通過beautifulSoup或lxml解析結構,獲取對象,並對對象執行一些操作。
你能發佈無法正常工作的代碼嗎? – RocketDonkey