给定 html 个文件,仅提取有意义的文本
Given html file extract just meaningful text
给定一个包含 css 链接、图像链接等的标准 html 文件,如何才能只提取有意义的文本?有意义的意思是与页面相关的文本。所以在 Whosebug 的情况下,问答文本。对于新闻网站,这将是故事的主体。
可能使用的一种算法是确定什么是句子或不是:搜索开头包含大写字母且结尾包含句号的单词序列(粗略但只是入门)。
有哪些替代方案?
更新:@Vanaja Jayaraman 建议的样板管道似乎运行良好。我需要为 boilerpipe
添加以下 Maven 依赖项
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.21</version>
</dependency>
用于提取文本的代码 (Scala):
val source = scala.io.Source.fromFile("c:\news1.html")
val lines = source.mkString
source.close()
println(de.l3s.boilerpipe.extractors.ArticleExtractor.INSTANCE.getText(lines));
您可以使用 HTML 选择器,例如 class、id、段落等。您可以使用 .text() 获取文本,HTML 通过调用 .HTML.我之前抓取了一个网站,你可以看看here。有点乱,但对你有帮助。
Here 教程不错
如果您输入的是新闻站点,则可以使用 Boilerpipe 的文章提取器。 Boilerpipe 还提供一些其他类型的提取器。
在 JSoup 中,您可以使用选择器概念。
给定一个包含 css 链接、图像链接等的标准 html 文件,如何才能只提取有意义的文本?有意义的意思是与页面相关的文本。所以在 Whosebug 的情况下,问答文本。对于新闻网站,这将是故事的主体。
可能使用的一种算法是确定什么是句子或不是:搜索开头包含大写字母且结尾包含句号的单词序列(粗略但只是入门)。
有哪些替代方案?
更新:@Vanaja Jayaraman 建议的样板管道似乎运行良好。我需要为 boilerpipe
添加以下 Maven 依赖项<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.21</version>
</dependency>
用于提取文本的代码 (Scala):
val source = scala.io.Source.fromFile("c:\news1.html")
val lines = source.mkString
source.close()
println(de.l3s.boilerpipe.extractors.ArticleExtractor.INSTANCE.getText(lines));
您可以使用 HTML 选择器,例如 class、id、段落等。您可以使用 .text() 获取文本,HTML 通过调用 .HTML.我之前抓取了一个网站,你可以看看here。有点乱,但对你有帮助。
Here 教程不错
如果您输入的是新闻站点,则可以使用 Boilerpipe 的文章提取器。 Boilerpipe 还提供一些其他类型的提取器。
在 JSoup 中,您可以使用选择器概念。