【问题标题】:html-to-text conversion using Python standard library only仅使用 Python 标准库的 html 到文本转换
【发布时间】:2012-03-19 15:27:59
【问题描述】:

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

HTML 到文本的转换是指lynx -dump 的道德等价物。事实上,只要智能地摆脱 HTML 标记,并将所有 HTML 实体转换为 ASCII(或 UTF8 编码的 unicode)就足够了。

请不要使用基于正则表达式的答案。 (正则表达式无法胜任。)

谢谢!

【问题讨论】:

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


    【解决方案1】:

    自 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")
    

    【讨论】:

      【解决方案2】:

      我写了一个非常简单的 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 文件中提取更多内容。

      【讨论】:

      • 你试过这个代码吗?我认为甚至称其为代码也不公平。
      【解决方案3】:

      我还建议您查看html2text。
      也可以看看另一个thread

      【讨论】:

      • 我特别要求提供仅需要标准 python 发行版中的模块的答案; html2text 不在标准库中
      猜你喜欢
      • 2010-10-10
      • 2010-12-31
      • 1970-01-01
      • 2011-04-01
      • 2013-01-19
      • 2019-02-24
      相关资源
      最近更新 更多