如何使用 lxml 查找所有 src 标签并替换它们

how to use lxml find all the src tags and replace them

我想用lxml获取src内容,替换成space。
但是 body 仍然没有被替换 请帮助我谢谢。

import re
import lxml.html
#the content of source.log is a webpage source code I got by scrapy
with open("source.log", "r") as bb:
    c_str = bb.read()
    body =  c_str.decode('utf-8')


doc  = lxml.html.fromstring(body)
src  = doc.xpath("//@src")

for ss in src:
    re.search(ss,body)
    body.replace(str(ss),'')
    print body

例如: 如果 body 是

'src="http://pic/1379181836.jpg"/><br>紅心<br></div><div>tel:12345678</div>' \
           'src="http://pic/4447918.jpg"/>'

我想要的结果是:

'src=""/><br>紅心<br></div><div>tel:12345678</div>' \
           'src=""/>'

至少,你需要将replace的结果赋值给body:

for ss in src:
    body = body.replace(str(ss), '')
print body

不过,我个人不喜欢这种方法。最好找到 所有具有 src 属性的标签 并将属性值设置为空字符串:

for element in doc.xpath("//*[@src]"):
    element.attrib['src'] = ''

print lxml.html.tostring(doc)