垂直型爬虫架构设计

从事爬虫方向开发马上也将近两年时间了,今天基友问我关于爬虫的架构设计问题.其实这么久也想总结一下自己的整个开发的过程,架构的设计问题..对自己进行一些总结..仅作参考.

1.爬虫的分类 :

对于我来说,爬虫分为两类:

需要载入配置文件的爬虫与不需要载入配置文件的爬虫.

其实也就是人们常说的垂直型爬虫跟宽度(深度)遍历爬虫.

2.爬虫的架构:

1.宽度遍历爬虫.

做过SEO的朋友大概都知道,如果一个网站需要百度能够尽快的抓取,那么仅仅优化关键词,提高权重等都是比较简单的优化,爬虫友好性需要网站在建设的时候就考虑到爬虫的友好.如:标签设置,架构设计...

宽度遍历爬虫就是宽度抓取,网站在设计的时候就直接是按照宽度设计...不太好理解,也不太好解释... 大概的意思就是深度少...如; 进入首页之后---就能看到各个分类,点击分类就能看到分类列表---点击分类列表就是内容...减少与用户的交互,也让爬虫能直接找到重点.

各大搜索引擎应用的都是宽度遍历方式来抓取数据.不信你可以建一个网站.设置十几级深度..首页-分类--再分类---再分类之后十几级之后才能看到内容..你可以试一下,爬虫抓取的效果怎么样.

宽度遍历爬虫比较常见的很多,Nutch、Heritrix等都是宽度遍历爬虫的典型代表,比较常用的就是Nutch.

2.垂直型爬虫

垂直型爬虫我个人感觉是最近几年才被提出的,垂直型爬虫关注内容与准确还有效率.比较常见的就是舆情项目,财经项目等.仅仅抓取到有效有用的数据,并且在爬虫 抓取之初就能够把抓取到的内容进行简单的处理: 如.提取标题,内容,时间等.

垂直型爬虫注重效率,相对来说.一个网站有十万个链接,宽度遍历爬虫需要把十万个链接都下载到你的数据库中,而垂直型爬虫只需要下载对你有用的数据,也许仅有几千或者一万,如果垂直型爬虫抓取这么点数据比宽度遍历爬虫抓取的还慢,那么这个项目在这点上就是个垃圾.

垂直型爬虫相对于宽度遍历爬虫又一个特别的地方是:宽度遍历爬虫是可定制的,根据某个网站订制..比如:抓取QQ空间,新浪微博等,都是需要登陆的...或者是有些网站的内容需要javascript来调用才能显示,那么就需要javascript解析引擎来保证抓取的质量.插件定制是我对垂直型爬虫做的又一个定义

3.爬虫的设计

爬虫想起来复杂做起来其实一点也不复杂,简单来说就是网站链接发现,网站连接处理,链接下载---继续发现链接...

进入一个网站首先需要提供这个网站的网址.例如:        http://www.baidu.com         那么得到百度之后就需要下载该页面,下载页面之后能发现几个链接.  http://news.baidu.com http://music.baidu.com   等, 获得这几个链接之后就是打开这几个链接,继续获得新的链接....一直持续下去...

如果,仅仅是这样,那么爬虫就会‘死‘在这个网站...比如.在其他页面也会找到http;‘//www.baidu.com 那么再进入这里.再一直这样循环...就真的死了..所以需要对链接进行有效的管理,去重等...   在这个抓取过程中,某个链接已经抓取过了,那么在链接发现,或者是链接下载的时候就可以直接把这个链接去掉,不进行下载.那么之后发现的链接会越来越少,那么整个网站的抓取也就会有个结束!

OK,表达能力不是很好,简单总结,无论编写什么类型的爬虫,都需要这些:    链接发现--连接管理--链接下载--    那么也就获取到内容了.

4.垂直型爬虫的垂直?

垂直型爬虫在刚开始做爬虫的时候我就再想为什么叫垂直型爬虫.现在写了那么久也不是很理解,我大概觉得垂直的意思是垂直获取,就好像是有目的有目标的直接去拿想要的东西,所以垂直...!

垂直型爬虫跟普通型的爬虫不同的地方在于有目的性.相对于其他爬虫,目的性非常的明确.就好象我要拿一篇文章,其他的东西都不要,那么垂直型爬虫可以满足你!

垂直型爬虫设计跟宽度遍历爬虫的设计区别也不是很大,一样.... 链接发现--连接管理--链接下载. 不过大部分的垂直型爬虫多了一个     信息提取         提取出所需的内容是对垂直型爬虫最大的考研,也是垂直型爬虫最重要的功能. 所以在垂直型爬虫上应该体现的是 链接发现-链接管理-链接下载等.!

个人认为:垂直型爬虫更加适用于企业级,因为企业级所需资讯内容明确.而且垂直型爬虫更加的小型,便于管理.实现功能定制化.

时间: 2024-11-08 22:12:01

垂直型爬虫架构设计的相关文章

垂直型爬虫架构设计(2)

上文提到了关于爬虫的一些简单概念与爬虫真正要做的一些功能.简单的分析了一下垂直型爬虫与宽度(深度)遍历的一些特点.现在,我主要针对于垂直型爬虫的架构设计做一些简单的介绍. 1.垂直型爬虫的基本需求 目前企业级所需的基本上是垂直型爬虫.舆情分析,财经资讯资讯推荐等.基本山使用的都是垂直型爬虫来作为企业级使用的方案,企业级爬虫的特点我上篇博客里面已经讲过了,所以在做垂直型爬虫架构的时候只需要考虑抓去内容所需的功能.简单来说:拿到某篇资讯所需的方式或功能.例如:常见的 javascript方式,aja

分布式爬虫架构设计与实现

由于scrapy框架需要更多的学习成本,还有分布式爬虫也需要redis来实现,调度方式也不是很符合业务要求,于是就自己设计了个分布式爬虫架构.架构图如下: 爬虫的客户端为tornado编写的服务,爬虫管理器也是tornado编写的后台管理服务,主要功能:获取客户端的状态信息,爬虫进程数量,启动指定数量的爬虫进程,中断.重启爬虫,爬虫异常通知等. 爬虫进程与调度器间的请求非常频繁,所以使用socket长连,获取优先级高的队列,调度器的优先级算法,根据业务需求来编写. 消息队列使用rabbitmq,

爬虫架构设计

本文主要介绍爬虫系统的架构,具体的爬取细节和所使用的语言都可以自由选择. 以下是我从网上截取的一位前辈提炼的,对于爬虫系统的要求,我觉得很有道理. 我的设计尽量依据以上七条原则. 首先我觉得一个完整爬虫系统应该包括三个子系统:页面爬取系统,内容入库系统,内容管理系统. 三个系统之间必须低耦合,以实现分布式和可伸缩性的要求. 页面爬取系统负责从第三方页面抓取内容,并提交到内容入库系统的原始数据队列中. 内容入库系统会维护一个原始数据队列,实现一些去重以及基本的内容有效性判断,经过审核后的数据才可以

如何做最好的定向爬虫架构

如何做最好的定向爬虫架构 姓名:郭钟 当前职位:某创业公司担任爬虫工程师 摘要 随着互联网信息的不断发展,信息数据的挖掘技术也不断的发展.网络爬虫技术也随之得到了巨大的发展.而对于内容型驱动的网站来说反扒是一件必不可少的事情.很多网站用Jquery加壳.登录验证.限制单位IP每秒请求次数来阻止爬虫窃取数据.所以爬虫的智能性也受到越来大的挑战.特别是国内高匿代理IP资源少的问题给爬虫的技术发展代理巨大挑战.本论文由浅入深剖析一个定向爬虫最为重要的几点,由此得出一个适应现国内爬虫架构的解决方案. 引

架构设计:前后端分离之Web前端架构设计

在前面的文章里我谈到了前后端分离的一些看法,这个看法是从宏观的角度来思考的,没有具体的落地实现,今天我将延续上篇文章的主题,从纯前端的架构设计角度谈谈前后端分离的一种具体实现方案,该方案和我原来设想有了很大的变化,但是核心思想没变,就是控制层是属于Web前端的. 在以前文章里我说道前后端分离的核心在于把mvc的控制层归为前端的一部分,原方案的构想在实际的生产开发里很难做到,我觉得核心还是控制层和视图层的技术异构性,这样后果使得系统改造牵涉面太大,导致在项目团队里,沟通.协调以及管理成本相对较高,

分布式发布订阅消息系统 Kafka 架构设计[转]

分布式发布订阅消息系统 Kafka 架构设计 转自:http://www.oschina.net/translate/kafka-design 我们为什么要搭建该系统 Kafka是一个消息系统,原本开发自LinkedIn,用作LinkedIn的活动流(activity stream)和运营数据处理管道(pipeline)的基础.现在它已为多家不同类型的公司 作为多种类型的数据管道(data pipeline)和消息系统使用. 活动流数据是所有站点在对其网站使用情况做报表时要用到的数据中最常规的部

个人网站架构设计(三) - 从设计到前端到后台

在五月份,写过两篇博客,提到了要给自己做个网站,当时人在实习,没太多的时间,只是把大概的思路捋了一番,顺道也买了个云主机(配置比较低,内存才500M).接着返校处理毕业事宜,于是六月也随着同学之间挥泪告别的声音渐渐远去.七月,家里呆着,中旬回公司.想必这也是我近几年最长的一次假期了=. = 一.先说设计 1. 阮一峰的博客 目前我的博客设计是 fork 了 BeiYuu 的主题,然后七改八改,除了主页 BeiYuu 还认得出是他的之外,其他页面已经动了很大的手术,而这些手术灵感都是源自阮一峰阮大

企业级系统架构设计技术与互联网应用技术结合主题一 大规模并发性能问题探讨

何谓大规模并发,不同层面有不同的理解 企业应用(Intranet):千级强并发,万级弱并发(在线用户),十万级用户 大型企业ERP.供应链,大型企业HR.办公OA 互联网应用(Internet):百万级强并发,千万级弱并发(在线用户),亿级用户/ 门户网站(新浪.腾讯) 平台级电子商务(阿里巴巴.淘宝网.拍拍网) 搜索引擎(百度) 电子商务企业应用(Intranet + Internet):十万级强并发,百万级弱并发(在线用户),千万级用户 B2C电子商务(京东.凡客.一号店) 垂直型电子商务(

一个小型的网页抓取系统的架构设计

一个小型的网页抓取系统的架构设计 网页抓取服务是互联网中的常用服务,在搜索引擎中spider(网页抓取爬虫)是必需的核心服务.搜索引擎的衡量指标"多.快.准.新"四个指标中,多.快.新都是对spider的要求.搜索引擎公司比如google.baidu都维护者自己负责的spider系统.当然他们的系统很复杂,在这里我们介绍一个小型的网页抓取系统的架构,目标是快速的抓取某个或者几个指定的网站的数据,它的作用有很多,比如做竞品分析,还有其他不可告人的J. 下面这个小型的网页抓取系统,分成下面