【发布时间】:2018-12-27 01:23:13
【问题描述】:
我一直在使用一种工具将 pdf 文档转换为 HTML,以便可以更轻松地编辑它们,同时保留尽可能多的格式。我需要做的是用文本“[REDACTED]”替换某些短语,问题是这个文本被随机标签(主要是跨标签)不可预测地分解,所以我不能轻易地使用查找和替换。
作为示例,我需要从此 html sn-p 中替换文本“要删除的敏感信息”:
<span class="fs4 fc2">Sensitive<span class="_ _b"> </span>Information to Re<span class="_ _c"></span>move</span>
有了这个:
<span class="fs4 fc2">[REDACTED]</span>
有没有办法使用 Beautiful Soup 之类的库或某种复杂的正则表达式字符串来完成此操作?
【问题讨论】:
-
bs4 比 regex 更有可能工作,但到目前为止你尝试过什么?
-
所以我首先发现这段代码不起作用:
target = html_soup.find_all(text=sensitive_info)` for v in target:` ` v.replace_with(v.replace(sensitive_info, "[REDACTED]"))` 和我试图看看是否有某种模式与文本是如何分解的,并且在这方面没有运气。如果有人遇到过类似的问题并且也没有找到任何东西,请搜索 Stack Overflow,所以我很困惑...... -
您使用的是什么工具?我想知道为什么有些工具会在转换过程中插入随机垃圾。
-
它被称为 pdf2htmlex:github.com/coolwanglu/pdf2htmlEX 我的意思是如果你知道另一种支持 python 的方式来查找和替换 pdf 中的文本同时保留它的格式,那也可以解决我的问题 :)
-
我认为遍历所有跨度然后获取其中的文本至少是部分解决方案:
for span in soup.find_all('span'):然后text = span.get_text()然后if text == "Sensitive Information to Remove":因为 get_text 删除了一个元素。
标签: python html regex beautifulsoup