我有一个字符串,其中可能包含 br 或 span.../span 标签或其他 HTML 字符/实体。我想要一种强大的方法来剥离所有这些并获取剩余的 UTF-8 字符。理想情况下,这应该是跨平台的。
像这样的东西是理想的:
http://snipplr.com/view/15261/python-decode-and-strip-html-entites-to-unicode/
但这也会删除标签。
我有一个字符串,其中可能包含 br 或 span.../span 标签或其他 HTML 字符/实体。我想要一种强大的方法来剥离所有这些并获取剩余的 UTF-8 字符。理想情况下,这应该是跨平台的。
像这样的东西是理想的:
http://snipplr.com/view/15261/python-decode-and-strip-html-entites-to-unicode/
但这也会删除标签。
您的要求有多严格?一个简单的两国 FSA 应该可以做到。以 READCHAR 状态开始。每当您在该状态下读取 '<' 时,转换到 READTAG 状态;否则,将字符写入结果字符串。每当您处于 READTAG 状态并读取“>”时,转换回 READCHAR 状态。
编辑:哎呀。错过了关于实体的部分。你也需要一个 READENTITY 状态。当您转换出来时,您还可以将代码转换为相应的 UTF-8 字符。
我不清楚你想要什么。
输入:这是一串
文本 & 多行"
应该输出:
1) This is a string <br> <br /> of text & on many lines " (Replace & with & and " with ")
2) This is a string of text & on many lines "
您想简单地删除元素,还是将 HTML 转换为纯文本?
选项1:
如果您只想删除所有出现的,您可以使用正则表达式搜索和替换。
选项 2:
如果您真正想做的是获取具有格式的页面并将其转换为纯文本,那么我能想到的最简单和最强大的方法是使用浏览器或某些浏览器引擎来实际解析 HTML 和从中提取文本。
IOW,这相当于将网页从浏览器复制到剪贴板,然后将其粘贴到记事本中。