一淘搜索之网页抓取系统分析与实现(4)- 实现&总结


以一淘搜索的crawler为核心展开的分析到此基本结束了,除了django和mysql部分没有涉及,其它部分都进行了test,尤其是围绕crawler,所展开的分析和实现主要有:

1. 分布式crawler与分布式pipeline处理。

使用scrapy+redis实现,用到了scrapy+scrapy-redis。关于自己相关代码也在fork的repo做了探索与实现。

2. javascript rendering content处理。

使用scrapy+webkit+jswebkit+gtk。用到了scrapyjs,但是这是一种非异步阻塞的方式,其它可选splash.

-----------------------------------------------------------------------------------------

今天下午又研究了下scrapy抓取js内容,发现了scrapy+selenium的解决方案,而selenium提供了丰富的api去模拟用户的行为,这样js rendered content的获取就不再话下了。

相关的资料放在收藏夹中。

其实不论是哪种方式,核心都是模拟浏览器和用户的行为。


3. 防止被ban策略扩展。

实现了两个 可重用组件proxy.py和useragentmiddle.py放在了blog-crawler中。

4.其它

其它关于crawler的研究有的放在了Scrapy专栏中。



在这个过程中接触到、学到、用到的东西:

主要是对开源框架、项目的学习与深入。怎样根据这些东西定制自己需要实现的功能,怎样在开源项目没有直观example的情况下分析实现自己的example。另外还有很实用的照葫芦画瓢的能力。
最核心的是认真分析doc,从而实现。


其中参考到的文章与PPT,主要来自searchtb.com:

定向抓取漫谈
快速构建实时抓取集群 
一淘网offline系统简介 
一淘网技术简介
Redis内存存储结构分析
淘宝摘星-爬虫(在shareslide上,需)


还有几篇其它方面的很有意思:

从狄仁杰的测字占卜到一淘网的Query分析 
从狄仁杰的测字占卜到一淘网的Query分析之大结局

你可能感兴趣的:(一淘搜索系统研究,一淘搜索之网页抓取系统分析,搜索,一淘,分析,爬虫,scrapy)