URL管理服务器(URL-Server):负责url的集中管理,不详细讨论
爬虫(Crawler): 从Server中取得一个url后,下载页面,提取链接,提取文本后保存。
爬虫的设计:
两个producer-consumer队列:URL的本地存取队列(CrawlURLQueue)和新产生的url缓存队列(NewURLQueue).
爬虫监控CrawlURLQueue队列当前的容量,当url减少到一定数目后,就向URL-Server中批量请求URL,并插入到CrawlURLQueue队列中;
每个爬虫从队列中取出url,提取链接,并把新产生的url插入到NewURLQueue;
当NewURLQueue到达一定容量后(或定时),提交给URL-Server
线程:
1.CrawlURLQueue生产者线程,向URL-Server请求新的URL
2.CrawlURLQueue消费者线程,实际的爬虫线程个数(n),视机器性能而定
3.提取URL和正文线程
5,NewURLQueue消费者线程,提交到URL-Server