冬Blog

醉心技术、醉心生活
  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

网络爬虫(1):概述

Posted on 2008-06-20 09:56  冬冬  阅读(2429)  评论(1编辑  收藏  举报

最近开始写搜索引擎项目了,基于Linux平台的,用纯C编写。项目主要参考以下书籍:

  1. 《走进搜索引擎》,梁斌,电子工业出版社
  2. 《搜索引擎原理、实践与应用》,卢亮、张博文,电子工业出版社
  3. 《搜索引擎——原理、技术与系统》,李晓明、闫宏非、王继民,科学出版社

这三本书其实重复的部分很多,但是国内这方面的参考资料实在少的可怜,而且太偏理论,所以有条件的话,还是建议把三本书都找来读读。

开发计划

项目第一步是实现对于给定范围内的数据的抓取和更新,目标区域是海大所有网站或教育网所有网站,千万级的数据量。

这个计划又分为三步:

  1. 单线程定向抓取
  2. 多线程抓取
  3. 分布式抓取

目前第一步:单线程的定向抓取已经完成。

流程

整个系统的流程图如下:

抓取流程

系统模块

根据系统的流程将其分为七个模块:

  1. store:负责数据的存储,包括将页面储存到磁盘、获取下一个未分析的页面等。
  2. url_info:负责Url信息的转换,主要是根据Url提取域名和服务器的IP地址。
  3. url_index:判断Url是否已被抓取。
  4. url_filter:Url过滤器,用于实现定向抓取。
  5. http:负责根据Url抓取页面。
  6. page_parse:页面的解析,提取包含的Url。
  7. main:主程序。

以后会陆续介绍各个模块的实现。

开发环境

操作系统:Ubuntu 8.04

部署服务器:Ubuntu 8.04 Server

编译工具:gcc,make

IDE:Eclipse CDT 4.0.1

版本控制:Subversion