如何在不更改HTML结构的情况下更改HTML文本

时间:2019-07-05 14:16:43

标签: python beautifulsoup

我想执行以下操作:在HTML文件中,我想通过“ fly”替换所有单词“ bee”(例如)。但是,HTML音乐的所有结构都保持不变。我使用BeautifulSoup(代码如下)进行此操作:

with open(file, 'r', encoding='utf8') as f:
    source = f.read()
soup = BeautifulSoup(source, 'html.parser')
for tag in soup:
    if type(tag) is not bs4.element.Tag:
        continue
    new_soup = BeautifulSoup(str(tag).replace('bee', 'fly'))
    tag.replace_with(new_soup)
with open(file_out, 'w', encoding='utf8') as f:
    f.write(str(soup))

问题是:替换工作正常,但是文件的结构变得丑陋(然后段落从文件中的某个点合并在一起,所以我有纯文本而没有空行等),如果我查看我看到文件的HTML代码结构现在完全不同了(我突然有了一些“ html”标记,而我没有任何标记,依此类推)。

如何在不失去HTML结构的情况下替换HTML文本中的单词?

提前感谢,丹尼斯

0 个答案:

没有答案