一种新型的网页正文抽取算法,对于广告的屏蔽很有效果。
代码移步github
现在网上能搜到的正文抽取算法一般有两类:
Readability:该算法先建立DOM树,然后对网页源代码中不同的HTML标签进行判断,逐渐找到正文所在标签位置。该算法的主要优点是可以最大程度的保存网页正文的缩进、空行以及链接。
行块分布算法:主要是基于论文《基于行块分布函数的通用网页正文抽取》。该算法不需要建立DOM树,直接剔除HTML标签,剩下的网页文字之间会有一定的位置关系。
网上的这两种算法应用程度都很广,但是对两种算法进行测试后,发现两种算法对于正文和广告距离很近的网页的抽取效果都不是很好。
对于这种情况,我在参考了《基于行块分布函数的通用网页正文抽取》之后,提出了一种新的网页抽取算法,《基于广告链接和行块分布的网页正文抽取》。
该算法的最主要的改进是:在获得网页源代码之后,先将网页中所有的(a href)标签替换为*字符,然后剔除网页中的所有标签。再用行块分布函数对留下的网页文字之间的位置关系进行分析,但是在分析时要加入对广告文本的判断。
具体做法可以查看github项目 webarticle
有时间继续补充算法细节