分布式爬虫构架

优采云 发布时间: 2020-05-07 08:02

  设计爬虫构架 爬虫构架满足一下功能 (1) 分布式:爬虫应当才能在多台机器上分布执行。 (2) 可伸缩性:爬虫结构应当才能通过降低额外的机器和带宽来提升抓取速率。 (3) 性能和有效性:爬虫系统必须有效地使用各类系统资源,例如,处理器、存储空间和网 络带宽。 (4) 可扩展性:为了才能支持新的数据格式和新的抓取合同,爬虫构架应当设计成模块化的 形式。 这里最主要的是爬虫和储存库。 其中的爬虫部份阶段性地抓取互联网上的内容。 存储库储存 爬虫下载出来的网页, 是分布式的和可扩充的储存系统。 在往储存库中加载新的内容时依然 可以读取储存库。整个爬虫系统可以由一台抓取机器或多个爬虫节点组成。 加载复杂的网页可以选择采用 WebKit 模拟浏览器处理 js 渲染页面获取 多机并行抓取的分布式系统节点之间的通讯和调度,在一个爬虫节点上实现并行抓取分布式爬虫架构,可以 考虑多线程同步 I/O 或者单线程异步 I/O。多线程爬虫须要考虑线程之间的同步问题。对单 线程并行抓取来说分布式爬虫架构,异步 I/O 是很重要的基本功能。解析流程 (1)通过基于正则,Xpath.Csspath 等规则,获取页面指定位置的 html 或文本数据 (2)按照数据格式需求,判断必要值是否存在,并依据类型判别数据正确 (3)通过验证的数据步入到数据入队的缓存队列等待存入数据库房 (4)如果数据验证不通过,则将异常的 url 返回到待抓取 URL 集合中重新抓取关键节点数据说明 (1)Web 配置界面:可在界面降低爬取的*敏*感*词*入口,入库规则,URL 过滤规则 (2)控制节点:负责将 URl 集合中的待爬地址分发到多个工作节点便于并发的执行爬取工作 (3)工作节点:根据待爬的 URL 信息和对应的*敏*感*词*规则获取页面并解析出数据,并按照抓取的页 面获取相关联的须要爬取的 URL 信息,加入到 URL 集合中等待爬取. (4)解析页面:根据*敏*感*词*提供的解析规则抽取,并验证数据的入库合法性,通过则存入入库缓冲 队列中,如果发觉有异常,则返回当前 URL 到 URL 集合中重新爬取 URL 集合 Url 集合中的数据项,除了抓取的 url 本身外,额外带有流程中各环节处理结果的数据信息,如: 解析异常,会降低 url 项中的解析异常次数,以便在前面的逻辑中控制重试次数(还有更新次数, 最近成功更新时间....) 节点配置 根 据 系 统 的 规 模 和 数 据 抓 取 量 的 大 小 , 在 数 据 存 储 DB 这 块 , 可 以 根 据 实 际 情 况 采 用 mongo,hbase 或其它的数据库,以达到系统储存的可伸缩性URL 扭转的消息队列也可以依据系统规模,如 1 亿条数据缓存采用 ssdb,如果须要性能更好可 以采用 kafka 分布式的消息队列,以便可以便捷的扩充系统运行规模. 爬虫平台监控须要实现功能 (1)爬虫运行状态监控 a) 爬虫定时发送心跳包,监控平台依照心跳包,监控爬虫的运行状态 (2)爬虫采集量监控 a) 对爬虫爬取数据的总数的统计 (3)爬虫采集速度监控 /秒 /分 /时 根据规模需求而定 a) /秒 /分 /时 根据规模需求而定 (4)定时电邮发送运行状态和统计信息 a) 定时发送,爬虫运行的情况和爬取数据总数

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线