我正在寻找将 HTML 转换为文本的最佳方法,仅使用 Python 2.7.x 标准库中的模块。(即,BeautifulSoup
不等)
通过 HTML 到文本的转换,我的意思是lynx -dump
. 事实上,只需智能地摆脱 HTML 标记,并将所有 HTML 实体转换为 ASCII(或 UTF8 编码的 unicode)就足够了。
请不要基于正则表达式的答案。(正则表达式不能胜任这项任务。)
谢谢!
我正在寻找将 HTML 转换为文本的最佳方法,仅使用 Python 2.7.x 标准库中的模块。(即,BeautifulSoup
不等)
通过 HTML 到文本的转换,我的意思是lynx -dump
. 事实上,只需智能地摆脱 HTML 标记,并将所有 HTML 实体转换为 ASCII(或 UTF8 编码的 unicode)就足够了。
请不要基于正则表达式的答案。(正则表达式不能胜任这项任务。)
谢谢!
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")
我编写了一个非常简单的 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 文件中提取更多内容。