首页 > 解决方案 > 如何获取保留标签的 BeautifulSoup NavigableString 的字符串形式

问题描述

我正在使用 Python 的 BeautifulSoup 处理 HTML 格式的大型数据文件。

而且我得到了 NavigableStrings,我需要在打印之前对其进行 unicode 编码。如果我从 NavigableString 中获取 get_text() 或 .string,它似乎会从中删除所有 HTML 标记。

另一方面, NavigableString 本身似乎没有 .encode("utf-8") 类型选项。

那么如何在不剥离标签的情况下将我的 NavigableString 变成普通字符串呢?

标签: pythonbeautifulsoup

解决方案


要将 HTML 打印为文本,您只需将其转换为字符串,然后您可以将其编码为 UTF-8,如下所示:

from bs4 import BeautifulSoup

html = '''<body>
    <div>hello</div>
    </body>
'''

soup = BeautifulSoup(html)
print str(soup).encode('utf8')

推荐阅读