分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储
[TOC] 1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL、HBase等。 基于面向接口的编码思想来开发,因此这个系统具有一定的扩展性,有兴趣的朋友直接看一下代码,就能理解其设计思想,虽然代码目前来说很多地方还是比较紧耦合,但只要花些时间和精力,很多都是可抽取出来并且可配置化的。 因为时间的关系,我只写了京东和苏宁易购两个网站的爬虫,但是完全可以实现不同网站爬虫的随机调度,基于其代码结构,再写国美、天猫等的商品爬取,难度不大,但是估计需要花很多时间和精力。因为在解析网页的数据时,实际上需要花很多时间,比如我在爬取苏宁易购商品的价格时,价格是异步获取的,并且其api是一长串的数字组合,我花了几个小时的时间才发现其规律,当然也承认,我的经验不足。 这个系统的设计,除了基本的数据爬取以外,更关注以下几个方面的问题: 1.如何实现 分布式 ,同一个程序打包后分发到不同的节点运行时,不影响整体的数据爬取 2.如何实现 url随机循环调度 ,核心是针对不同的顶级域名做随机 3.如何 定时向url仓库中添加种子url ,达到不让爬虫系统停下来的目的 4.如何实现对 爬虫节点程序的监控 ,并能够发邮件报警 5.如何实现一个 随机IP代理库 ,目的跟第2点有点类似,都是为了反反爬虫 下面会针对这个系统来做一个整体的基本介绍