135-1060-0256
搜索推荐技术在电商导购领域的应用(二):爬虫
发布时间:2015/11/11 14:52:34来源:本站原创字体:
创建多个中间变量。
 
JS子模板这个名字不好,最初未来解决javascript带来的问题,后面也就懒得改了。随着技术的迭代优化,逐渐使用一种自研的脚本语言(内部代号,behemoth)来简化模板抽取工作。鉴于脚本语言的灵活性,behemoth几乎能做到任何程度的处理,可用来抽取商品SKU,点评等。目前我们正逐渐替换成behemoth。
 
behemoth极大简化了模板编写工作,隐藏诸多技术信息(例如常用的xpath、正则封装),让模板编写者只关注业务逻辑。此外,大多数电商网页,都存在着盘根交错的ajax调用,behemoth先执行整个网页的dom渲染后再进行抽取工作,每个抽取模板是一个code unit,极大降低了模板编写复杂度。
 
behemoth也是有代价的,由于大量的渲染工作,抽取一个网页的时间是之前的几倍。总体上,好处还是大于坏处。
 
搜索引擎爬虫 电商搜索优化 电商搜索引擎 搜索技术
 
搜索引擎爬虫 电商搜索优化 电商搜索引擎 搜索技术
 
这是我们早期一些模板的示例。
 
搜索引擎爬虫 电商搜索优化 电商搜索引擎 搜索技术
 
这是目前模板的演化现状。
 
对了,还有一个问题,模板这么多,如果模板失效了怎么检测呢?我们为此研发了一个自动检查机器人,将有问题的模板定期挑出来,让人工修改更新。这种架构,维护几千家网站不成问题。 
 
此外,我们正在研发第三代抽取技术,模板工作将会进一步再减少50%+。
 
(三)存储
 
需要管理的网址链接是百亿级,商品是10亿级,为了方便分析和读取,需要支持随机写和顺序写的存储系统,关系型数据无法满足我们的需求,需要no-sql型。早期我们自研了一套文件系统——ministore,随着数据量的增长,维护的成本比较高,中期我们且换到了Cassandra,到现在我们使用改造后的Hadoop+redis。有关Cassandra、Redis、Hadoop文章很多,两个系统各有特点,这里不展开说。
 
小结
 
搜索引擎爬虫 电商搜索优化 电商搜索引擎 搜索技术
 
要写好一个爬虫要干这么多活,绝对是一个脏活累活有木有,堪称技术界的活雷锋有木有。
 
一个优秀的爬虫对搜索引擎发挥着极其重要的作用,它是核心数据的源头,处理的越好,对后续的处理帮助越大。
 


1 2

返回