【python教程】网页正文及内容图片提取算法

python教程评论562 views阅读模式

抓取单个网站网页内容时通常采用正则匹配的方式,但不同网站之间结构千奇百怪,很难用统一的正则表达式进行匹配。《基于行块分布函数的通用网页正文抽取算法》的作者总结了一般从网页中提取文章正文的方法,提出基于行块分布的正文抽取算法,并给出了 PHP 、Java 等实现。这一算法的主要原理基于两点:1、正文区密度:在去除HTML中所有tag之后,正文区字符密度更高,较少出现多行空白;2、行块长度:非正文区域的内容一般单独标签(行块)中较短。算法步骤如下:

1、去除所有tag,包括样式、Js脚本内容等,但保留原有的换行符\n

【python教程】网页正文及内容图片提取算法

2、将网页内容按行分割,定义行块 $block_i$ 为第 $[i, i + blockSize]$ 行文本之和并给出行块长度基于行号的分布函数:

【python教程】网页正文及内容图片提取算法

3、正文出现在最长的行块,截取两边至行块长度为 0 的范围:

【python教程】网页正文及内容图片提取算法

4、如果需要提取正文区域出现的图片,只需要在第一步去除tag时保留<img>标签的内容:

【python教程】网页正文及内容图片提取算法

以上就是【python教程】网页正文及内容图片提取算法的内容,更多相关内容请关注PHP中文网(www.php.cn)!

企鹅博客
  • 本文由 发表于 2019年9月8日 14:24:09
  • 转载请务必保留本文链接:https://www.qieseo.com/340113.html

发表评论