Python在HTML中搜索和替换分解的文本

2024-10-08 18:27:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在使用一个工具将pdf文档转换为HTML,这样它们就可以更容易地编辑,同时保留尽可能多的格式。我需要做的是用文本“[REDACTED]”替换某些短语,问题是这个文本被随机标记(主要是span标记)不可预测地分割,所以我不能简单地使用find和replace。你知道吗

例如,我需要替换此html代码段中的文本“要删除的敏感信息”:

<span class="fs4 fc2">Sensitive<span class="_ _b"> </span>Information to Re<span class="_ _c"></span>move</span>

有了这个:

<span class="fs4 fc2">[REDACTED]</span>

有没有什么方法可以使用像BeautifulSoup或某种复杂的正则表达式字符串这样的库来实现这一点?你知道吗


Tags: 工具文档标记文本编辑pdfhtml格式
1条回答
网友
1楼 · 发布于 2024-10-08 18:27:30

要替换HTML文档中的文本,可以使用ulsou提供的clear()append()方法(manual pages):

data = """<span class="fs4 fc2">Sensitive<span class="_ _b"> </span>Information to Re<span class="_ _c"></span>move</span>"""

from bs4 import BeautifulSoup

soup = BeautifulSoup(data, 'lxml')

secret_string = "Sensitive Information to Remove"
redacted_string = "[REDACTED]"

while True:
    s = soup.body.find(lambda t: t.text==secret_string)
    if not s:
        break

    s.clear()
    s.append(redacted_string)

print(soup)

这将打印:

<html><body><span class="fs4 fc2">[REDACTED]</span></body></html>

相关问题 更多 >

    热门问题