知道搜索引擎或则爬虫的大侠来看看!该怎么处理

知道搜索引擎或则爬虫的大侠来看看!!
大侠们,小弟目前在开发一个搜索引擎,请有经验的大侠提点解决方案,
比如,周期更新,增量搜索,广度搜索的层数控制,存储等等。详细具体就好。谢谢。
引用 [url=http://topic.****.net/u/20080419/09/62d02c8a-fd18-4b58-98ff-1d8d586a2d36.html#replyachor菜鸟挤的代码,弄了几天几夜,现在都不知道该怎么通过编译了,请大家帮帮忙[/url]]
LZ :tianjiao85

我理解爬虫程序:
e1.连接第一个服务器,先下载好一个网页数据,保存在recvBuf,继续e2
e2.从recvBuf提取http链接,存入到 web(类型map <char *,vector <char *>>),char *段用来存储服务器也就是网站主机域名,vector <char *>>用来存储这个网站的http链接,继续e3。
e3.下载该站点下下一个网页(也就是存放在map类型中的vector <char *>段的链接),继续e2。
e4,重复e3,当第一个站点下所有http链接都完成下载,访问下个服务器,继续e1。
e5. 保存到硬盘。

每次执行e2时,遇到新的服务器,都会在web中添加一个pair <char *,vector <char *>>,既是服务器和它的网页。

程序现在没有考虑的有:
爬虫的思路的正确性
爬的层数
存储,
效率。,等,
代码只要能够运行起来,电脑爆了了也没关系,就是要验证想法,解决完这个问题后,才考虑其他问题。
所以先请大侠们,帮我看看代码,提提修改建议,
之后,欢迎大家讨论,批评,小弟一定细细聆听。



28 楼 dk385 的回复:
爬虫思路正确,网络爬虫一般就是按广度优先,或深度优先来遍历网络,但由于网络的数据是非常大的,所以采用上术的算法时还要加上必要的控制。如增加URL可以最大跳转的深度,以控制它的收敛速度。
1. 提升效率首先当然考虑多线程。
修改建议,大体上可作如下分解:
对URL的处理:分析,得到主机,端口,等。
用于维护主机名的队列: 注意到同一站点的DNS请求只做一次, 多线程共享,应考虑线程并发性,封装成类.
用于维护…


引用 31 楼 tianjiao85 的回复:
增加URL可以最大跳转的深度,以控制它的收敛速度
最大跳转的深度是只层数吗?
我看说一般最深3层,
我听有人说做到了两层,
如果是层的话,这个层控制怎么实现呢,用个记号吗?呵呵,猜测,
我想会不会要用到是个什么数据结构吧,这个层怎么实现呢?大侠。


------解决方案--------------------
帮你顶顶
------解决方案--------------------
帮顶 & 蹭分
------解决方案--------------------
不懂,帮顶