武汉SEO优化告诉你做好网页处理能让SEO蜘蛛快速抓取数据

作者:武汉网络公司 来源:华凯梦科技 2019-08-21 18:10

小编告诉你做好网页处理能让SEO蜘蛛快速抓取数据,网页处理在大部分介绍里,都算在爬虫部分。我呆过的第一家公司,并没有网页处理相关的小组。我当时基本上算是最主要的网页处理工程师了,写了包括网页解析基础库,各种网页里的质量信号的抽取等。不过我呆过的第二家搜索公司,当时有一个小组是专门做网页解析的。当然,本文要谈的不局限于网页解析,而是在索引之前的搜索特征提取。在我做搜索的时候,机器学习还没那么火,我们一般叫质量信号之类的。但是这些质量信号,主要是服务排序的,排序作为一个机器学习任务,使用到的因素,我们称之为特征比较好理解。而网页解析等大部分工作,可以看成网页排序这个复杂Task的特征工程。

网页处理

Index pipeline

在一个网页搜索中,完整的index pipeline很复杂,涉及到死链检测,soft 404页面检测,标题抽取,正文抽取,网页发布时间抽取,结构化信息抽取(比如论坛的各个帖子的内容,作者,时间等。再比如电影的导演,主演,名字,别名等),host rank计算,page rank计算,色情页面检测,垃圾页面检测,作弊网页检测,重复页面检测,病毒页面检测等等。

Html Parser

那么要完成这么多的搜索排序的特征工程,首先我们需要打造一个方便易用的网页解析库。一般我们会实现一个html parser,基本DomTree或者是SAX。编写一个这样的引擎并不容易。解析一个网页比较容易,但是要能够解析几千亿的网页而不crash,并且碰到网页很大(比如超过2M),或者网页很病态(比如只有open tag,没有close tag),解析的速度还能够很快,并且内存依然不会爆掉,需要对这个网页解析库进行千锤百炼。当然,网上已经有了不少开源的解析库了。不过大部分情况是这样的,要不接口不友好,要不性能糟糕,要么代码风格不好。之前谷歌也开源了一个网页解析的项目,我们测试下来,性能实在是跟不上,不太适合搜索引擎

Xpath

网页解析除了html parser,一般还需要方便工程师进行网页信息抽取,最好是基于配置文件进行抽取,因此一般需要支持xpath查询语言。Xpath的资料网上很丰富,大家有兴趣可以结合XML语言去学习了解。那如何高效支持Xpath进行信息抽取,甚至基于整个配置文件来抽取某一类网页,甚至某一类网站的多种信息抽取,就又有更高level的需求了,比如是否实现一个template config parser之类的解析库。核心诉求是,配置规则很简单,方便易学,甚至可以找一些三四千块钱的编辑就可以进行配置。那么怎么把这个库实现得优雅高效,方便易学,甚至如何开发出一些配套的浏览器工具,便是这块的核心竞争力。据我所知,百度等搜索公司对这方面都花了不少研发精力。

网页解析这里有一个核心竞争力在于,如何利用你的工程能力,对网页解析库这样底层的基础工具进行性能优化,比如优化个10-20%,或者优化了三五倍的性能出来,那整体的搜索引擎相关的计算集群资源,就能得到很大的改进,省出来的银子,不见得比索引性能优化,或者是检索性能优化,或者是各种机器学习模型的排序性能优化来得少。

CSS Parser

网页解析还有好几个有挑战的事情,比如要解析出来网页里字体的大小(字体很小也是作弊的手段之一),颜色(颜色搞成和背景色一样,也是作弊的手段之一),或者是文字是否可见(常规的作弊手段之一)等,都是需要比较高阶的解析的。如果学过网页设计,大家应该知道这块需要对CSS进行解析。CSS一般分为tag内部的,html文件内的,外部CSS文件等。那么如何高效地进行CSS文件,并与HTML解析结果进行结合,就有不少工作值得深入。

此外,CSS文件的压缩和存储/读取,也有一定的挑战。原因在于,不像html这样,大部分网页的内容差异都比较大,CSS一般是给一个网站,或者是一类风格的网页设计的,文件的规模比较少。有一些建站工具做出来的,甚至大部分CSS都一样。既然CSS文件的内容有特殊的规律,那么针对CSS的压缩,可能就会存在特殊的算法。还有一个问题是,网页的内容可能不会变,但是网页的风格却可能会被更新。在网页解析的时候,往往一次性分析百亿级别的网页,那如何高效读取各个网页对应的CSS文件呢?实时抓取么?还是存在mysql?Nosql?还是怎么去特殊处理?

CSS文件怎么解析呢?也有不少开源的项目,当然也可以参考各大浏览器开源项目。不过浏览器项目里一般代码依赖比较复杂,很难单独抽取出来。

Javascript

其实这部分放在爬虫部分更合适。在抓取的时候,往往会碰到页面跳转,或者是有一部分关键的网页内容,是在页面本身加载完毕后,才开始动态加载的。比如做新闻的Hub页抓取的时候,往往会发现我们想要的新闻内容页的链接信息,是通过js来生成的。那怎么办?如果只是抓取一个网站,当然我们可以通过抓包分析,靠人工来总结浏览器背后的网络行为,然后写代码模拟浏览器的行为。通用点的,公司内搭建或者开发一套浏览器抓取的方案,特殊的网页,都使用这些特殊的抓取服务来抓,这样在下游做网页解析的时候,看到的html都是一样带有我们想要抽取的页面内容的了。

之所以放在这部分,很简单,js是一门脚本语言,脚本语言的执行,其实也可以看成解析引擎在跑,只是这里的解析是脚本语言,而不是HTML或者XML这样的标记语言。

网页特征抽取

不仅是搜索排序需要网页特征抽取,挂在网页里的广告系统,也需要使用到网页相关的信息,以判定哪些网页和哪些商业关键词更相关。

那么前面提到的特种网页特征,活学活用上面提到的一些解析引擎就差不多了。当然做这个工作,很多时候需要有一双善于观察的眼睛。主要是几个原因:

互联网的网站规模上亿,表现形式千变万化,很难有统一的解析方法。青菜萝卜各有所好,网站的审美更是如此。因此,标题怎么摆,使用什么标题,都可能不同。网页的发布时间,到底是写成“2019-05-01 10:10”还是写成“19-05-01 10:10:00”,还是写成“19年5月1日上午十点”,还是写成“4小时前”,都完全随意,人都能读懂。

这个其实和目前人工智能里,大家强调的自然语言理解的难题是一样的。自然语言理解一般缩写为NLU,主流的做法虽然也使用深度学习等,但是都非常依赖数据标注,也就是说最好是能见过大部分的说法。那时间有多少种写法呢?还真不知道。加上中文时间和英文时间的表达差异,绝对时间和相对时间等可能性,解析一个时间都很费劲,并且很难100%准确。正如NLU系统往往统计学系结合规则系统,解析时间等网页解析,也往往采取统一检测加特殊配置的方法进行。大的网站往往配置个规则更划算,说不定一个URL pattern就能解析上亿个网页,编写特殊规则的收益非常大。

和统计学习一样,特征工程往往很重要,而特征工程需要依赖经验和灵感。换句话说,需要能够快速找规律。原因很简单,从自由文本里去解析出结构化信息很难,计算复杂度也很高。而有一双善于观察的眼睛,意味着可以找到一个非常有效的特征,并且特征的抽取比较容易,计算代价更小。

和网页处理相关的话题,其中有一个是非常重要的,一个是page rank,host rank,一个是反作弊。Pagerank的资料网上可以说是汗牛充栋了,谷歌和百度的创始人们,也都有这方面的论文或者专利。感兴趣的读者建议直接找一些相关的论文来阅读。

反作弊和SEO

说到反作弊,有兴趣的可以看谷歌反作弊工程师的博客。网址忘了,自己搜索。业界很多做SEO的人,据说都会去阅读上面的文章并做各种研究。反作弊和作弊这个事儿,和信息安全与病毒的关系差不多,因为作弊能够带来商业上的好处,所以商业搜索引擎和作弊者的斗争永远没有结束的时候。道高一尺魔高一丈,这会这些作弊的策略骗过了搜索引擎,明天可能就整站被下掉了。

说过反作弊和SEO,往往外面的人觉得做搜索引擎开发的工程师都有特权,知道怎么去操纵网页的权重,其实都是想多了。一来,这事儿不是谁都懂,二来,这事儿关乎职场道德,三来,这事儿值钱的话,我为啥免费给你干?

当然,反作弊的工作,往往也会干倒一大批,误伤三五家。我身边就有几个朋友曾经碰到类似的情况,托我帮找朋友去解决问题。

反作弊的话题和SEO的话题都挺大的,我自己也不太删除。SEO之前曾经阅读过一本专著,好像是新加坡的一个哥们写的,现在忘了差不多了,不过大概的策略倒是和搜索排序的因子差不多正相关的。反作弊的话题,我记得吴军的《数学之美》曾有专门章节论述,有兴趣的同学也可以找来看看。吴军在谷歌的时候,应该专门从事过一段时间反作弊系统的研发。


本文地址:武汉SEO论坛频道 http://www.hkm168.com/seobbs/1147.html,武汉易企推网络公司,是一家专业的武汉网络推广,网络营销,品牌营销策划推广公司,提供一站式全网营销推广服务:小程序开发,网站建设,SEO百度排名,SEM竞价托管,品牌营销推广、360搜狗百度竞价开户、百度地图标注、百科词条创建修改、新媒体引流加粉、企业负面公关处理等;另外,禁止转载本站文章,谢谢!


相关文章相关文章
本地企业
              可提供上门服务

便捷

本地企业可提供上门服务

提供适合、专业可行方案

周到

提供适合、专业可行方案

5-10分钟售后响应机制<

贴心

5-10分钟售后响应机制

按效果收费,无效果不收费

放心

按效果收费,无效果不收费

行业高标准,效果稳定可靠

稳定

行业高标准,效果稳定可靠

1-3个月排名上百度首页

快速

1-3个月排名上百度首页

武汉易企推网络公司;公司地址:武汉市武昌区静安路6号5.5创意产业园4楼;公司官网:http://www.hkm168.com

服务热线:18120550335 / 027-88866235 欢迎来电咨询; 联系QQ:1193073039

Copyrigh©2017-2030 版权所有:武汉易企推网络科技有限公司 备案号:鄂ICP备17012199号 网站地图