开发一款开源爬虫框架系列(五):爬虫架构的一些新思路
2016-11-25 01:34
302 查看
爬虫开源项目地址:http://git.oschina.net/coliza/MongooCrawler
以前的思路是由客户端完成所有的下载网页,解析等功能,服务器端负责从内存队列中拿到数据并将获取的对象输出到存储层。现在发现一个很麻烦的问题,不同的网站需要定制不同的抓取策略,如果部署爬虫集群,那么假如我
要修改解析策略或存储策略,客户端或者服务器只能重写、编译、部署,而且服务端负责存储压力大很容易造成性能瓶颈。
解决方法就是,客户端一样负责抓取和分析功能,不一样的是这个定义解析策略的对象通过RPC调用服务端的接口获取,这样修改策略就不需要再动客户端。客户端同时负责调用数据层的接口存储数据,只不过负责存储的对象同
样通过RPC调用服务端的接口获取。
近期一直在写爬虫,看了很多别人设计的爬虫架构后,我大概梳理了一下主要的功能模块,其一是抓取主体,一般是多个内存队列存储url,不同的爬虫节点从队列中获取url进行爬取;其二是公共库,存储一些抓取需要用的帐号和代理ip;其三是监控报警;其四是抓取规则配置。
以前的思路是由客户端完成所有的下载网页,解析等功能,服务器端负责从内存队列中拿到数据并将获取的对象输出到存储层。现在发现一个很麻烦的问题,不同的网站需要定制不同的抓取策略,如果部署爬虫集群,那么假如我
要修改解析策略或存储策略,客户端或者服务器只能重写、编译、部署,而且服务端负责存储压力大很容易造成性能瓶颈。
解决方法就是,客户端一样负责抓取和分析功能,不一样的是这个定义解析策略的对象通过RPC调用服务端的接口获取,这样修改策略就不需要再动客户端。客户端同时负责调用数据层的接口存储数据,只不过负责存储的对象同
样通过RPC调用服务端的接口获取。
近期一直在写爬虫,看了很多别人设计的爬虫架构后,我大概梳理了一下主要的功能模块,其一是抓取主体,一般是多个内存队列存储url,不同的爬虫节点从队列中获取url进行爬取;其二是公共库,存储一些抓取需要用的帐号和代理ip;其三是监控报警;其四是抓取规则配置。
相关文章推荐
- 开发一款开源爬虫框架系列(二):设计爬虫架构
- 开发一款开源爬虫框架系列(一):分析nutch,scrapy的爬虫设计
- 开发一款开源爬虫框架系列(四):设计fetcher
- 开发一款开源爬虫框架系列(三):聊聊并发包中的队列(Queue)
- 分享android开发过程中用到的一些开源框架
- 开发iOS即时通讯工具参考的一些开源、框架和教程
- C# WinForm开发系列 - 介绍一些开源的第三方控件
- 分享android开发过程中用到的一些开源框架
- 分享android开发过程中用到的一些开源框架
- 分享android开发过程中用到的一些开源框架
- Python开源爬虫框架:Scrapy架构分析
- 强烈推荐Android开发技术系列文,android底层架构,android核心框架
- [智能架构系列]什么是Buddy智能开发框架
- android开发过程中用到的一些开源框架
- 分享android开发过程中用到的一些开源框架
- iOS IM开发的一些开源、框架和教程等资料
- 分享android开发过程中用到的一些开源框架
- 分享android开发过程中用到的一些开源框架
- 分享android开发过程中用到的一些开源框架
- 分享:分享android开发过程中用到的一些开源框架