python - 仅使用 Python 标准库进行 html 到文本的转换

标签 python html-parsing standard-library html-to-text

我正在寻找将 HTML 转换为文本的最佳方法,仅使用 Python 2.7.x 标准库中的模块。 (即没有 BeautifulSoup 等)

我所说的 HTML 到文本的转换是指道德上等同于 lynx -dump。事实上,只需巧妙地摆脱 HTML 标签,并将所有 HTML 实体转换为 ASCII(或 UTF8 编码的 unicode)就足够了。

请不要使用基于正则表达式的答案。 (正则表达式不能胜任这项任务。)

谢谢!

最佳答案

自 2.2 起的 Python 有 HTMLParser module .它不是最有效也不是最简单的使用方式,但它就在那里……

如果您正在处理适当的 XHTML(或者您可以通过 Tidy 传递它),您可以使用更好的 ElementTree

from xml.etree.ElementTree import ElementTree
tree = ElementTree()
tree.parse("your_document.xhtml")
your_string = tree.tostring(method="text", encoding="utf-8")

关于python - 仅使用 Python 标准库进行 html 到文本的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9772969/

相关文章:

java - 是否有未同步的 java.util.Stack?

c++ - 使用 std::map 时这些做法是否合适?

c++ - Xcode 使用哪个 C/C++ 编译器?

python - 如何计算每分钟数据集的 15 分钟标准差?

python - 如何使用 Python 的 Bokeh 更改刻度标签大小?

python - 使用不同的值更新多行python和mysql

c - 与 Safari Web Inspector 中使用 libxml2 类似的 DOM 树

python - 在 os.path.getsize() 的路径中使用通配符会返回错误 : OSError

.net - 将 html 标记转换为有效 XML 的脚本

ruby-on-rails - 如何在HTML文档中用</script>安全地嵌入JSON?