网页采集器的自动识别算法(java和网络爬虫方向时间很短,如何没有符合条件的h1,)
优采云 发布时间: 2021-10-02 10:39网页采集器的自动识别算法(java和网络爬虫方向时间很短,如何没有符合条件的h1,)
提前感谢 知乎 的帮助
背景:由于java和网络爬虫方向接触时间很短,在编码或者逻辑上还有很多不严谨的地方。一开始是通过前端配置对应的xpath值来爬取定时任务。以后会慢慢需要的。增加了,比如类似今日头条的自动城市标注功能。在同事的指导下,利用自然语言处理,自动分析新闻内容,得到城市。当然,它也借用了开源代码。我不会在这里谈论它。另一个例子是新闻分类。它也类似于使用机器学习贝叶斯分类的方法。. . 说了这么多,让我们回到正题。
让我在这里谈谈我的实现。像标题这样的东西仍然很好地实现,因为标题的特征在互联网上是可追溯的。基本上可以通过h1和h2的logo来实现。当然,如何知道 h1 的文本必须是标题。我之前看过一个分析相似性文本的算法。主要用于文本去重方向。通过计算h1、h2标题的simhash值,比较网页头部title标签的内容,通过一个Threshold,就可以提取出新闻正文的标题,当然,如果没有h1, h2 满足条件,则只能处理 title 的 text 值。
与新闻发布时间类似,新闻来源一般可以用正则表达式匹配。
然后就到了关键点。关于新闻内容的提取,我参考了很多论文和很多资料。这里有两种常见的解决方案,
1.基于行块分布函数的网页正文提取算法
2.基于块统计和机器学习的主题网页内容识别算法实现及应用实例(DOM节点)
小弟自身水平有限,无法写出类似的算法和代码,单纯的复制代码测试准确率不高,两种方法只能放弃,有一定参考价值
最后用webcontroller开源爬虫框架中的代码提取文章的文本,不做广告,有兴趣的同学可以研究一下,顺便分析一下这个框架。记住@我,功能实现了,分享一下实现过程
最后,最近看了一下文章自动总结。在自然语言api的简单实现下,效果是有的。大概是通过我们常用的抽取方案来实现的,所以自动总结在语法上会有点不尽如人意。, 勉强可以接受