我正在寻找将HTML转换为文本的最佳方法,仅使用Python 2.7.x标准库中的模块。 (即,没有BeautifulSoup
等)
通过HTML到文本转换,我的意思是道德等同于lynx -dump
。事实上,只是智能地删除HTML标签,并将所有HTML实体转换为ASCII(或转换为UTF8编码的unicode)就足够了。
请不要使用基于正则表达式的答案。 (正则表达不能完成任务。)
谢谢!
答案 0 :(得分:5)
Python 2.2以来有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")
答案 1 :(得分:0)
我写了一个非常简单的python脚本,该脚本仅从HTML文件中提取标题和段落,而无需使用任何第三方 图书馆。 注意:此脚本非常简单,只能处理非常简单的HTML。 而且它是用python 3编写的
from unittest.mock import Mock, patch
@patch("requests.request")
def test_request(request_mock: Mock):
response_mock = Mock(status_code=200)
response_mock.json.return_value = {"foo": "bar"}
request_mock.return_value = response_mock
您仍然可以扩展这个想法,并使其从HTML文件中提取更多内容。
答案 2 :(得分:-1)