Web scraping 如何从boilerpipe文章提取器运行和获取文档统计信息?

Web scraping 如何从boilerpipe文章提取器运行和获取文档统计信息?,web-scraping,html-content-extraction,boilerpipe,Web Scraping,Html Content Extraction,Boilerpipe,关于boilerpipe的ArticleExtractor类的使用,我有些不太了解。尽管如此,我对java还是很陌生,所以也许我对这个环境的基本知识是错误的 无论如何,我正在尝试使用boilerpipe从我收集的一些原始html源代码中提取主要文章。html源文本存储在java.lang.String变量(我们称之为htmlstr)中,该变量具有网页的原始html内容 我知道如何运行boilerpipe将提取的文本打印到输出窗口,如下所示: java.lang.String htmlstr =

关于boilerpipe的ArticleExtractor类的使用,我有些不太了解。尽管如此,我对java还是很陌生,所以也许我对这个环境的基本知识是错误的

无论如何,我正在尝试使用boilerpipe从我收集的一些原始html源代码中提取主要文章。html源文本存储在java.lang.String变量(我们称之为htmlstr)中,该变量具有网页的原始html内容

我知道如何运行boilerpipe将提取的文本打印到输出窗口,如下所示:

java.lang.String htmlstr = "<!DOCTYPE.... ****html source**** ... </html>";

java.lang.String article = ArticleExtractor.INSTANCE.getText(htmlstr);
System.out.println(article);
方法

我的理解是,需要运行这个ArticleExtractor进程方法,然后才能使用相同的“TextDocument doc”变量,使用BP的

TextDocumentStatistics(TextDocument doc, boolean contentOnly) 
方法?我想使用统计数据来确定过滤效果的好坏


有人能帮我解决的代码示例吗?

用Jython编写的代码(转换为java应该很容易)

1)如何从HTML字符串获取文本文档:

import org.xml.sax.InputSource as InputSource
import de.l3s.boilerpipe.sax.HTMLDocument as HTMLDocument
import de.l3s.boilerpipe.document.TextDocument as TextDocument
import de.l3s.boilerpipe.sax.BoilerpipeSAXInput as BoilerpipeSAXInput
import de.l3s.boilerpipe.extractors.ArticleExtractor as ArticleExtractor
import de.l3s.boilerpipe.estimators.SimpleEstimator as SimpleEstimator
import de.l3s.boilerpipe.document.TextDocumentStatistics as TextDocumentStatistics
import de.l3s.boilerpipe.document.TextBlock as TextBlock

htmlDoc = HTMLDocument(rawHtmlString)
inputSource = htmlDoc.toInputSource() 
boilerpipeSaxInput = BoilerpipeSAXInput(inputSource)
textDocument = boilerpipeSaxInput.getTextDocument()
2)如何使用文章提取器处理文本文档

3)如何获取TextDocumentStatistics(自上而下)


注意:与boilerpipe 1.2.jar库一起提供的java文档对于将来的参考应该有一定的帮助

重新标记。这是(=从网页中提取数据),而不是(=复杂的统计分析)谢谢Kevin,我只是对java语法不够熟悉,无法正确实现我在javadoc中读到的内容。我实际上是通过matlab实现java。。。现在它开始工作了,对于getNumWords方法,除了documentstats之外的所有数据总是返回0。
import org.xml.sax.InputSource as InputSource
import de.l3s.boilerpipe.sax.HTMLDocument as HTMLDocument
import de.l3s.boilerpipe.document.TextDocument as TextDocument
import de.l3s.boilerpipe.sax.BoilerpipeSAXInput as BoilerpipeSAXInput
import de.l3s.boilerpipe.extractors.ArticleExtractor as ArticleExtractor
import de.l3s.boilerpipe.estimators.SimpleEstimator as SimpleEstimator
import de.l3s.boilerpipe.document.TextDocumentStatistics as TextDocumentStatistics
import de.l3s.boilerpipe.document.TextBlock as TextBlock

htmlDoc = HTMLDocument(rawHtmlString)
inputSource = htmlDoc.toInputSource() 
boilerpipeSaxInput = BoilerpipeSAXInput(inputSource)
textDocument = boilerpipeSaxInput.getTextDocument()
content = ArticleExtractor.INSTANCE.getText(textDocument)  
content_list = [] #replace python 'List' Object with ArrayList in java
content_list.append(TextBlock(content)) #replace with arrayList.add(TextBlock(content))
content_td = TextDocument(content_list)
content_stats = TextDocumentStatistics(content_td, True)#True for article content statistics only