python爬虫设计_python集群爬虫的设计与实现

集群爬虫的技术标准:

基础概念:

1.物理节点:对应真实的物理机或虚拟环境中的物理机,具有独立的计算能力和存储能力。

2.运行对接:由数据引擎(S端)和爬虫引擎(C)进行C/S模式数据流转。

模块编号

模块功能

对应主体

1

地址处理

爬取路径

2

数据页处理

原生的,非结构化的数据页

3

数据结构化(抽取)

爬虫的工作目标

4

方法(规则)库调用,指导1、2、3模块运行。

人类智能和人工智能相融合的混合智能

工程实现:算法,编码与系统维护相结合,满足个性化,人性化,智能化的目标实现。

核心阐述:

单机爬虫:依托于一个物理节点,动态调用上文1-4模块的实例。

多机爬虫的集群模型:

创新:引入蚁后(领导爬虫)的概念,即通常所说的核心主机。

作用:

1.调度单核爬虫作业;

2.重构单核爬虫;

3.支持资源的动态分配。

常见爬虫的任务流程拓扑结构:

sg_trans.gif

图一 单节点模式

sg_trans.gif

图二 双机热备份模式

sg_trans.gif

图三 总线型顺序分工模式

sg_trans.gif

图四 环状型顺序执行循环任务模式

sg_trans.gif

图五 星型主从调度执行模式

sg_trans.gif

图六 对等网型直联协作模式

sg_trans.gif

图七 网状型分层复杂协作模式

特别说明:针对中小企业和创业者,因其资源和业务范围有限,因此爬虫集群最多扩充到图六那种星型拓扑。LDAE_1.5_创业版已基本实现。

技术细节:

地址爬虫:取得地址列表,永久化存储(通常是:在本地文件中)。找一个收益最大的地址,递归调用,同时去重和清理。

数据页爬虫:在地址爬虫结束任务后,从地址队列表中按某规则, 顺序爬取网页或其它数据源到数据页库,去重和初步清理。

结构化爬虫:在数据页爬虫完成任务后,对本地的初步去重和清理过后的数据页, 按照规则库进行结构化处理。最简单的就是:找标题、关键词、生成时间 和主要内容 。复杂一点的就是:自动标签,情感分析,敏感词抽取 。规则库的调用主要看业务需要

运行机制:通常情况下,三个爬虫由任务调度器管控,为线性队列,默认是阻塞型。也有特殊情况,例如: 实时爬虫,一般搜索引擎用,

是一次调用,

只处理一个地址对应的一个数据页的数据分析,然后马上加入索引和缓存。这个是高端应用,一般看业务需要,很少采用,因为比较消耗资源。

通常做法是:按种子网址来分配主任务 。一个种子网址对应一个网站 ,分配一个独立的数据库,包括内存型和硬盘型。

处理完,再进行下一个种子的主任务。 可以是一台物理主机处理N个种子, 也可以

N个主机处理N个种子。假如这个站特别大,任务特别紧,也可以N个主机处理一个种子,即集群并行处理。

区间小总结:

1. 爬虫的配置和调用方式,按具体业务和经验结合配置。

2.

地址,数据页和结构化是基础爬虫,类似于蚁群中的工蚂。我们很多教材为了教学方便,常常将仅仅针对一个网页(即一个数据源的一个单任务流程)的三步操作:地址,数据页和结构化放在一个模块文件里讲授,造成约定俗称的爬虫就是这样的,其实是简化的爬虫程序,不适合应用于大规模高复杂度的工程。

求组队:合作开发集群爬虫,用于业余创业。

百分百原创,低手高手均可,QQ:27461933

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值