1.抓取网页,通过对某一网站主页进行分析,然后选择其上面的所有链接,然后把这些网址加入到要下载的队列中
2.加入到队列时,可以宽度优先,也可以深度优先,一般情况下,是宽度优先,一般搜索引擎只抓取,网站的前三层网页,
他们认为超过三层的网页,一般网页质量不高。
3.多线程技术,爬虫是很注得效率的,所以一般采取多线程或多进程技术,用多线程访问维护下载队列,
把所有要下载的网址加入到队列中去,每一个线程依次从队列中取出网址进行下载,当然队列的访问是互斥的。
4.程序中断处理,一般情况下网络爬虫会因为网络的不确定性,会经常中断,weblech的做法,设置一时间间隔,然后对队列进行
状态进行维护,然后启进行下载。(本人认为最好再加入超时判断,可以舍弃掉超时的网页,以防止程序中断)。
5.防止对同一网址多次下载,一般会把所下载过的网址写入hash表中去,从而来避免下载同一网页。
6.像baidu,,google等著名搜索引擎,肯定都是分布式的,这个设计更有难度了,呵;但weblech不是分布式的,也相对简单些。
7.过虑网址,可以设urlMatch的值对网址进行过滤,也就网址中必须出现子串urlMatch,也就是更好定制网址。