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

黄舟
黄舟 原创
2017-02-07 16:16:56 2108浏览

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

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

980.jpg

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

981.png


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

982.png


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


983.png

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


声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。