如何使用 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)
我想用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)