在限定网站爬行时,如何提高larbin的速度

 

   根据需要,有时可能需要限定到一个(些)网站采集网页,如果网站数不是很多,会发现下载的速度慢到无法忍受。原因就是larbin的策略都是从全网爬行的角度考虑的,但可以从以下几个方面修改来提高速度:

    1、将larbin.conf里面的waitDuration设置为1,这里不再考虑polite^_^, 设置为1大多数网站其实还能忍受;
    2、将types.h里面的maxUrlsBySite修改为254;
    3、将main.cc里面的代码做如下修改:
   // see if we should read again urls in fifowait
if ((global::now % 30) == 0) {
    global::readPriorityWait = global::URLsPriorityWait->getLength();
    global::readWait = global::URLsDiskWait->getLength();
}
if ((global::now % 30) == 15) {
    global::readPriorityWait = 0;
    global::readWait = 0;
}

相信做了上述修改后你就会发现效果比原来的速度提高很多。

 

关于larbin的一些问题

问题一

# do you want to follow external links

noExternalLinks

这段设置 如果 #noExternalLinks 是不是 就可以爬所有外网 连接


问题二 是不是 如果larbin 中途 停止(关机) 再运行就从头 开始采集



问题三 我想把保存的文件 扩展名变成 .html 是否可以

问题四 我想用   GDB   一步一步跟踪 LARBIN   不知道 怎么下手

Blog作者的回复:
回答一、不设置此项,限定范围可以看本博客里面的一篇文章;
回答二、不是,在options.h中设置reload可以从上次停止的地方开始运行。
以上两个问题建议仔细看文档。
回答三、可以,在saveuseroutput.cc中做些修改就可以。
回答四、用make debug编译,调试可以看gdb的帮助。

我想问一下,larbin是不是最多只能装入6400万个URL呀?可不可以加到几亿呀?

Blog作者的回复:
可抓取的最大网页数是可配的,你可以增大这个值。现在larbin采取的消重策略在采集那么大量的情况下肯定会有大量的冲突,存储也是需要考虑的问题。

posted on 2009-07-27 13:47  Myhsg  阅读(569)  评论(0编辑  收藏  举报