我正在尝试编写一个解析器,它将采用 HTML 并将其转换/输出为 Wiki 语法( <b>
= '''
、 <i>
= ''
等)。
到目前为止,BeautifulSoup 似乎只能替换标签内的内容,所以 <b>
变成<'''>
而不是'''
。我可以使用 re.sub() 来交换这些标签,但是由于 BS 将文档转换为“Python 对象的复杂树”,我不知道如何交换这些标签并将它们重新插入到整体中文档。
有人有想法吗?
最佳答案
我很确定已经有工具可以为您做到这一点,但如果您询问如何使用 BeautifulSoup
做到这一点,您可以使用 replace_with()
,但您需要保留元素的文本。天真的和简单的例子:
from bs4 import BeautifulSoup
data = """
<div>
<b>test1</b>
<i>test2</i>
</div>
"""
soup = BeautifulSoup(data, "html.parser")
for b in soup.find_all("b"):
b.replace_with("'''%s'''" % b.text)
for i in soup.find_all("i"):
i.replace_with("''%s''" % i.text)
print(soup.prettify())
打印:
<div>
'''test1'''
''test2''
</div>
关于python - BeautifulSoup Replace_with 用于非标准标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35758737/