Boilerpipe看起来确实工作得很好,但是我意识到我并不需要主要内容,因为许多页面上没有文章,而只是带有简短描述的链接到整个文本(这在新闻门户网站中很常见),并且我不想丢弃这些短裤文字。
因此,如果API执行此操作,请获取不同的文本部分/以某种方式将每个部分分开的块,这些块与单个文本不同(仅在一个文本中没有用),请报告。
我从随机站点下载了一些页面,现在我想分析页面的文本内容。
问题是网页上有很多内容,例如菜单,宣传,标语等。
我想尝试排除与页面内容无关的所有内容。
以该页面为例,我不希望页脚中的链接上方的菜单。
重要提示: 所有页面均为HTML,并且是来自不同站点的页面。我需要如何排除这些内容的建议。
目前,我认为是从HTML和看起来像专有名称(第一个大写字母)的连续单词中排除“菜单”和“横幅”类中的内容。
解决方案可以基于文本内容(不带HTML标签)或基于HTML内容(带HTML标签)
编辑: 我想在我的Java代码中执行此操作,而不是在外部应用程序中执行此操作(如果可以的话)。
看一看Boilerpipe。它旨在完全满足您的需求,消除网页主要文本内容周围多余的“混乱”(样板,模板)。
有几种方法可以将HTML馈入Boilerpipe并提取HTML。
您可以使用URL:
ArticleExtractor.INSTANCE.getText(url);
您可以使用String:
ArticleExtractor.INSTANCE.getText(myHtml);
还有一些使用Reader的选项,这会打开很多选项。