【发布时间】:2012-06-25 19:03:46
【问题描述】:
我受到 Safari 阅读器功能的启发,该功能可让您忽略网页上除故事之外的所有内容(构成页面要点的所有文本、链接和图像,但不包括标记、前因、或后果)。我想制作一个 基于 Java 的版本作为轻量级“浏览器”。
我的问题在这里:我不知道如何辨别主要内容。在检查了诸如MSN articles 和fan fictions 这样的Reader 识别页面后,我意识到Reader 识别的实际文本不仅很难找到,而且不一致并且被看似随机的标签打断。例如,新闻链接以<div class="postBody"> 开头,每个段落都在<p>s 中,而链接的小说以<div class="chapter_content" id="chapter_container"> 开头,每个段落都以<br /><div style='float:left; height:1.0em; width:3.0em;'></div> 开头,但不在其自己的容器中。
由于 Safari 支持这个“阅读器”界面,显然有办法做到这一点,所以我不会问它是否存在。相反,我想知道这一点:什么是一种好的、快速、Java 支持的算法,用于提取网页上故事的标题和正文,无论页面本身如何,构造好了吗?
对于上下文,我已经创建了一个以 JEditorPane 作为窗口的基本浏览器,其 EditorKit 设置为 HTMLEditorKit,并且正在使用 setPage(URL page) 方法来显示目标页面,但这可以改变我需要.
【问题讨论】:
标签: java html webpage interpreter