gpt4 book ai didi

python - 删除 lxml 中的 img 标签

转载 作者:行者123 更新时间:2023-11-27 23:54:51 32 4
gpt4 key购买 nike

我有这个代码:

from lxml.html import fromstring, tostring

html = "<p><img src='some_pic.jpg' />Here is some text</p>"

doc = fromstring(html)
img = doc.find('.//img')
doc.remove(img)

print tostring(doc)

输出是:<p></p>

为什么删除 img 标签也会删除它后面的文本?换句话说,为什么没有打印出结果:<p>Here is some text</p>我怎样才能只删除该标签而不删除文本?请注意,即使我在 img 上包含一个明确的结束标记,我也会得到相同的结果,即:

html = "<p><img src='some_pic.jpg'></img>Here is some text</p>"

最佳答案

Here is some text 文本是 img 标签的 tail - 它是一个元素的一部分,它正在被一个元素删除.

要保留 tail - 将其分配给 img parent 的文本:

from lxml.html import fromstring, tostring

html = "<p><img src='some_pic.jpg' />Here is some text</p>"

doc = fromstring(html)
img = doc.find('.//img')
parent = img.getparent()
parent.text = img.tail
doc.remove(img)

print tostring(doc)

打印:

<p>Here is some text</p>

关于python - 删除 lxml 中的 img 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24666712/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com