我有一個html文檔,其中一些元素包含我想隱藏的內容(比如中國政府正在做的事情,除了我只是想隱藏機密信息)。例如說我有:python:根據內容替換HTML元素
<div>
<span> bkhiu jknd o so so so yui iou 789 </span>
<span>
bkhiu
<div> 56 898tr SECRET oij890 </div>
</span>
</div>
我想所有包含字符串SECRET
的元素,只是###取代他們的全部內容:
<div>
<span> bkhiu jknd o so so so yui iou 789 </span>
<span>
bkhiu
<div>###</div>
</span>
</div>
我曾想過使用minidom
和re
的東西,如:
xmldoc = minidom.parseString(my_html_string)
# filtering nodes by their content
sensitive_nodes = filter(lambda n: re.search('SECRET', n.nodeValue),
xmldoc.getElementsByTagName())
# replacing content
for node in sensitive_nodes:
node.nodeValue = '###'
# output
my_html_string = xmldoc.toxml()
但首先解析甚至沒有成功:
ExpatError: mismatched tag: line 27, column 6
而且.getElementsByTagName()
需要tagName
參數......雖然我不關心標籤名稱和需要的所有節點(爲了通過他們的內容進行篩選)。那麼基本上,這些代碼根本不起作用,但只是試圖解釋我想實現的目標。
任何想法如何我可以輕鬆地做到這一點?用小型號或者完全不同的東西?
你好,你說明這行是第27? :) – Skurmedel 2011-04-12 11:39:59
對!這是文檔的開始:http://dpaste.com/531242/(和27是最後一個,即使它顯示爲24這裏...) – sebpiq 2011-04-12 11:45:08