您的位置: 首页 > IT文章 > 知道搜索引擎或则爬虫的大侠来看看!该怎么处理 知道搜索引擎或则爬虫的大侠来看看!该怎么处理 分类: IT文章 • 2022-05-24 17:29:53 知道搜索引擎或则爬虫的大侠来看看!!大侠们,小弟目前在开发一个搜索引擎,请有经验的大侠提点解决方案,比如,周期更新,增量搜索,广度搜索的层数控制,存储等等。详细具体就好。谢谢。 引用 [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层, 我听有人说做到了两层, 如果是层的话,这个层控制怎么实现呢,用个记号吗?呵呵,猜测, 我想会不会要用到是个什么数据结构吧,这个层怎么实现呢?大侠。 ------解决方案-------------------- 帮你顶顶 ------解决方案--------------------帮顶 & 蹭分 ------解决方案--------------------不懂,帮顶