1

我想将 HTML 转换为纯文本,但保留最小结构。

  • 所有仅包含浏览器需要查看的内容的部分,例如 <script> 和 <style> 都将被完全剥离。
  • 将所有块标记转换为 <div> 并将所有内联标记转换为 <span>完全删除内联而不留下空格并将块级别描述的任何内容转换为具有两个换行符的段落。

这个想法是将随机网页变成适合自然语言文本处理的东西,而不会因为天真地删除标记而人为地分解单词或使不相关的块看起来像句子而留下人工制品。

任何编程语言中的任何二进制文件、库或源代码都可以。

是否有一个标准源,最好是机器可读的,其中包含定义哪些是块、哪些内联以及哪些类似于上面的 <script> 和 <style> 的完整元素列表?

4

3 回答 3

1

HTML 4 块级元素的列表在这里:http ://htmlhelp.com/reference/html40/block.html

Perl 最流行的 HTML 解析库是HTML::Parser,它是一个 SAX 样式的解析器,以及HTML::TreeBuilder,它更像 DOM。

除此之外,您还必须决定哪些元素是重要的,哪些不是基于您想要做的事情。

于 2010-12-21T03:03:53.063 回答
0

你可能想自己做一些研究。然后,当您遇到问题时,请提出与该问题相关的问题。这听起来更像是您希望有人为您做的项目的规范。

对于初学者来说,网站对各种事物都使用标签,而且问题非常复杂。您可能希望将信息保存在 h# 和 p 标签中,但如果它们使用 id 标签,您也可能希望保存 div 标签信息。简而言之,您必须为遇到的每个网站编写规则,或者使用某种模糊逻辑。

为什么不尝试检测句子和语法或可能在标题中的内容,并选择包含这些内容的标签,同时删除其余内容,而不是逐个标签地执行此操作?

于 2010-12-17T17:55:58.193 回答
0

这是我自己在 Perl 中使用 HTML::Parser 作为 github 要点解决此问题的工具:html2txt.pl

它尚未完成,可能有点以 Windows 为中心,但我想我会分享它,因为有几个人在这里查看了我的问题。随意玩它。

于 2010-12-22T18:58:01.607 回答