阿布云

你所需要的,不仅仅是一个好用的代理。

Java开源爬虫框架WebCollector网页正文提取

阿布云 发表于

网页正文提取项目ContentExtractor已并入WebCollector维护。
WebCollector的正文抽取API都被封装为ContentExtractor类的静态方法。 可以抽取结构化新闻,也可以只抽取网页的正文(或正文所在Element)。
正文抽取效果指标 :

比赛数据集CleanEval P=93.79% R=86.02% F=86.72%

常见新闻网站数据集 P=97.87% R=94.26% F=95.33%

算法无视语种,适用于各种语种的网页。

标题抽取和日期抽取使用简单启发式算法,并没有像正文抽取算法一样在标准数据集上测试,算法仍在更新中。

调用方法:

News news = ContentExtractor.getNewsByHtml(html, url);
News news = ContentExtractor.getNewsByHtml(html);
News news = ContentExtractor.getNewsByUrl(url);

String content = ContentExtractor.getContentByHtml(html, url);
String content = ContentExtractor.getContentByHtml(html);
String content = ContentExtractor.getContentByUrl(url);

Element contentElement = ContentExtractor.getContentElementByHtml(html, url);
Element contentElement = ContentExtractor.getContentElementByHtml(html);
Element contentElement = ContentExtractor.getContentElementByUrl(url);
上线产品在选择网页正文提取算法时,一定要在大量数据集上测试抽取算法的Precision、Recall和F值,这三个值是评价网页抽取效果的标准特征。

肉眼测试算法并不是一个好的选择。无论从Github或者论文中,都难以找到一个准确率为100%的网页正文提取算法,上线产品使用网页正文抽取算法。每种算法都会在一部分页面上失效。肉眼评判算法好坏容易错失好算法,也容易将垃圾算法误判为好算法。

CleanEval是网页正文抽取的标准比赛数据集,可以参考其官方文档:http://cleaneval.sigwac.org.uk/lrec08-cleaneval.pdf

但CleanEval中的网页大多为早期网页,与目前的网页风格有较大差距。因此除了CleanEval,一般还需要准备20个与自己业务相近的网站。例如自己的业务是抽取百科网站网页的正文信息,就应该利用维基百科、百度百科的网站的数据作为测试数据集。正文抽取算法的覆盖面往往有限,很多有名的算法其实只能有效地抽取新闻网页的正文,在百科、博客等网站上的抽取效果非常差。

通过捐款支持WebCollector
维护WebCollector及教程需要花费较大的时间和精力,如果你喜欢WebCollector的话,欢迎通过捐款的方式,支持开发者的工作,非常感谢!

你可以使用支付宝钱包扫描下方的二维码进行捐款, 或者通过向支付宝帐号 hujunxianligong@126.com转帐进行捐款。