一、总体描述
网站数据的抓取分析是当今众多互联网业务中非常重要的组成部分,舆情分析、网络搜索、定向广告等都涉及到大量的数据采集分析。一套优秀的系统应该满足高效爬取和精准分析的要求,而在海量的网站数据中,页面的布局和展示存在着巨大的差异。分别为每个网站制作一个页面解析模板不仅耗时耗力,且当网站页面改版以后之前的工作都将失去意义。在本文档中,力图从几个方向的叠加应用上寻找一个中间性的设计思路,用来寻找一种低成本消耗,而效果也可接受的解决方案。
二、网页布局
上图是某网站对2018年俄罗斯世界杯首场揭幕战的报道,从页面的布局来看,左侧红框部分为报道正文,黄框部分为广告位和导航栏,绿框部分为HTML代码对应的正文阴影区域。作为定向抓取的解决方案通行的做法是为这个布局风格定制一套样式模板,提取并保存文档标题与正文,其余部分(根据业务要求)则丢弃。
通过随机抽取若干有代表性的固网与移动端的主流媒体来看,大多数的页面布局均具备一定特征可循,正文在网页中通常以两种方式来展现,一种以标签的开闭区间静态值的方式来描述,另一种则是通过AJAX多次请求的方式懒加载。提取操作时可以通过一种或几种算法的叠加应用来获取绝大多数网页的正文信息,从业务应用的角度上看,错误率在可接受方位内,不会对产品和业务产生实质性影响。
三、分析方案
1、标签定位
标签是浏览器解析页面原始文件的重要依据,对于文章标题,正文,图片及表格都有着非常好的指示作用。比如采用title、h1、h2定位文章标题,采用p定位文章段落,采用a定位超链接,采用img定位引用图片等。标签定位的算法简单粗暴有效,但误判率比较高,在实际调用的时候应该辅助其他算法以提高准确性。
2、标签分布
标签分布是对标签定位单一算法的补充,标签定位虽然可以准确地找到资源项,但却不能判定资源的价值属性,而通过统计标签的分布密度可以一定程度的增加预测的准确性。相对于一篇规范性的文章,应该具备标题、正文、开头、描写和结尾等要素,标签的分布应具备集中密集的特征,因此同一类型的文本标签应在一定区间范围内连续出现或有规律性的间隔出现。但是,该算法对于超短正文的情况显然是无能为力,在实际使用阶段还应增加其他辅助手段。
3、文本判别
从标签开闭区间提取出来的文本串应首先判断其长度,无论是广告、资讯还是导航等信息,文字描述都是言简意赅,大段长篇的表述通常不会出现在这些区域位置中。其次再对文本串的结尾符进行判断,一篇规范的段落或语句应以标点符号结尾,而菜单、导航、分类、超链等信息均不会出现这种情况。显然单一的文本判别算法也存在极端情况的不确定性,必要时应辅助其他算法提升识别的准确率。
4、DOM规范
许多第三方开源的HTML解析库大多以HTML原始文件作为入参,以DOM树结构作为中间值,用户在定位资源的时候通过快速查询来找到想要的数据项。从DOM树状结构来看,各个节点之间存在父子或兄弟的对应关系,一个庞大的原始页面文件一旦找到标题与正文(红框部分)的节点,其余的噪音信息就非常容易去除了,某种程度上极大的缩小了文本处理范围,降低了计算压力和负载。
5、关联计算
上图是某网站科技频道对苹果手机的点评文章,左侧图文为文章的正文部分,右侧为推荐、广告与导航,从内容的关联性角度来看二者毫不相关。通过词向量技术计算文本之间的余弦相似度,可以剔除语义上完全无关的语言群落,仅保留近似语义文本,达到正文提取的目的。
6、信息摘除
当前绝大多数的网站都已经加入到网盟广告或将自己的剩余流量售卖给广告交易平台用于盈利和变现。无论是网盟还是ADX,对于互联网广告的曝光位置和约束都是开放的,掌握了这些标准和规范(广告交易平台的域名、广告位ID、广告位尺寸、广告创意URL及信息、曝光点击及监测地址等),在大多数长尾流量的页面中都可以轻松识别出来,从而摘除与文章正文无关的信息。
7、视觉定位
视觉定位技术是站在网页浏览者的角度全局的审视网页的页面布局,通过判断各个内容项占据背景的位置、颜色、尺寸、乃至于字体字号等细节,分析预测页面的核心描述信息。该算法相比前面提到的方法技术门槛较高,研发难度较大。
8、反向模板
反向模板技术是指经过上述一种或几种算法计算提取正文再得到验证以后,反向推导出该媒体下网页的标题与正文HTML的标签体系,并自动生成对照模板,以便未来根据模板解析页面,毕竟模板套取方式相比上述算法来的更加简单直接与高效。