爬虫设计

一个设计良好的爬虫必须满足如下需求:

  • 分布式:多机分布式执行
  • 可伸缩性:爬虫结构能够通过额外的机器和带宽来提交爬虫速度
  • 性能和有效性:爬虫系统必须有效使用各种系统资源,例如Cpu,内存和网络IO
  • 更新:因为数据来源经常更新,爬虫应该取得已经获取数据的新的拷贝
  • 可扩展性:为了能够支持新的数据格式和新的抓取协议,爬虫架构应该设计成模块化的形式

爬虫模块

  • URL Frontier(url队列)
  • DNS模块
  • 获取模块(使用http协议获取url代表的数据或页面)
  • 解析模块提取api数据
  • 重复消除模块决定一个解析出来的链接是否已经在URL Frontier或者最近下载过

爬虫设计

分享到