1

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

通过 HTML 到文本的转换,我的意思是lynx -dump. 事实上,只需智能地摆脱 HTML 标记,并将所有 HTML 实体转换为 ASCII(或 UTF8 编码的 unicode)就足够了。

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

谢谢!

4

3 回答 3

5

Python 从 2.2 开始就有HTMLParser 模块。它不是最有效也不是最简单的使用,但它就在那里......

如果你正在处理正确的 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")
于 2012-03-19T15:32:26.723 回答
0

我编写了一个非常简单的 python 脚本,它只从 HTML 文件中提取标题和段落,而不使用任何第三方库。注意:这个脚本非常简单,只能处理非常简单的 HTML。它是用python 3编写的

#!/usr/bin/env python3
import os
#This is a standard python module
headings = "<h1>"
paragraphs = "<p>"



f = open('filename.html')
f.close

for line in f: 
   if headings in line:
      print ("line")
   If paragraphs in line:
     print ("line")

您仍然可以扩展此想法并使其从 HTML 文件中提取更多内容。

于 2019-07-26T15:58:21.193 回答
-1

我还建议你看看html2text
也看看另一个线程

于 2012-03-19T21:05:21.663 回答