网页新闻抓取(SEO过度的页面提取方法,准确率挺高,依赖又少)

优采云 发布时间: 2021-09-29 10:26

  网页新闻抓取(SEO过度的页面提取方法,准确率挺高,依赖又少)

  项目中需要采集相关行业新闻,寻找基于文本和符号密度的网页正文提取方法。准确率相当高,依赖性小。特别推荐。

  

  该方法是论文《Method of Web Page Body Extraction based on Text and Symbol Density》的实现。有兴趣的可以去看看原论文

  本文中描述的算法看起来简洁、清晰且合乎逻辑。还有一个更有用的标准:

  1

2

3

4

5

  Ti - LTi

SbDi = --------------

Sbi + 1

SbDi: 符号密度

Sbi:符号数量

  如果节点中文本的符号出现的频率更高,符号密度SbDi的值会更小,但文档说它会更大。如何解决?

  因为它在这里考虑的是一个“逻辑”文本。它不是专门为欺骗该程序而构建的文本。在普通的文章中,文章越长,标点符号就会被读取,这是很自然的。而且你可能会认为,在某个栏目中直接写上数百个标点符号的新闻,没有汉字。这种情况当然可以欺骗程序,但属于“故意构建”的坏情况。

  在正常的文章中,标点符号越多,正文中的文本就越多。分子和分母同时增加。显然,文本会比标点符号增长得更快,所以这个比例会增加。

  根据GNE作者kingname的测试,使用该算法对今日头条、网易新闻、有民星空、观察家网、凤凰网、腾讯新闻、ReadHub、新浪新闻进行测试,几乎可以达到100%的准确率。个人使用经验,只要合理添加noise_node_list,也可以得到文本(部分SEO过度的页面除外)。

  实施过程

  

  算法实现

  目前有python和nodeJS两种实现,依赖很少

  python版本还提供了一个非常有用的noise_node_list参数,可以根据实际页面排除不相关的内容。

  功能限制

  因为它只提取新闻网页,如果你想提取其他类型的内容,它可能不起作用,但你可以尝试添加更多过滤XPath。

  在线版

  这里是网络版讲解使用过程

  需要输入两件事:

  由于没有提供爬虫功能,可以通过Chrome开发者工具的Copy OuterHTML获取页面的HTML代码和Copy XPath来获取排除的元素。

  使用 Copy OuterHTML 复制整个网页的 HTML 代码。

  

  如果提取的内容不是您想要的,您可以选择提取的元素,单击复制 XPath,然后将其粘贴到过滤器 XPath 中。它可以是多个 XPath,以逗号分隔。

  

  输入效果

  

  提取新闻信息

  效果如下:

  

  网络版测试 网络版提取的图片可能有防盗链功能,无法显示。

  参考

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线