爬虫开发过程的解析网页工作占据了开发工作的80%左右,编写解析代码,虽然有一些基本工具chrome,firecdebug可以使用,但始终需要人工分析,编写解析规则。无论是使用xpath,正则表达式,css selector,都不能减少这一部分的工作量。
智能化解析
既然网页解析工作量大,重复性高,那么能否利用当前的人工智能来对网页进行自动化解析呢,这样就可以不用人工编写,减少工作量的同时,也可以大大提高爬虫效率。
解析网页算法分析
1.网页分割算法
- 图像识别的方法来切割视觉块,涉及到图像处理的相关算法:边界检测、文字识别、颜色划分等,但这种方法计算量大,复杂度高。
- 通过聚类算法,以与视觉相关的因素如元素在网页上的位置、宽度和高度、DOM树的层次等来构建特征向量。
- 基于主题标签的机器学习,查找网页中的< h >标签,结合其他特征来来进行机器学习,实现网页切分。
2.分类算法
完成网页的切分后,要对切分后的网页块进行识别,为每段网页块贴上标签,这里需要用到机器学习的分类算法。 - 训练集:以带标签的不同网页的分割结果为训练集
- 特征构建:为每个网页块构建特征矩阵,网页的特征可以从包含的标签特征、正文文本的相关特征、结构特征等方面去考虑。
- 算法选择:可以选择基本的分类算法:SVM、决策树、朴素贝叶斯等