设计并实现crawler 程序
对 crawler 的功能要求如下,但不限于此:
(1) 能够搜集本站内的所有网页,能提取出其中的URL 并加入到待搜集的URL 队列
中,对非本网站域名的URL,只允许搜集首页,记录发现的URL 即可;对搜集的结果,产
生2 个URL 列表:站内搜集URL、非站内(站外)发现URL;
(2)使用User-agent 向服务器表明自己的身份;
(3)能对HTML 网页进行解析,提取出链接URL,能判别提取的URL 是否已处理过,
不重复下载和解析已搜集过的网页;
(4)能够对crawler 的一些基本参数进行设置,包括:搜集深度(depth)、文件类型、
文件大小等。
(5)对搜集的过程生成日志文本文件,格式为三元组:
时间戳(timestamp) Action URL
Action 可表示当前的处理动作,例如processing(处理),parsing(解析),downloading
(下载)等。对Action 的定义,请在实验报告中详细说明。
(6)遵循礼貌规则。必须分析robots.txt 文件和meta tag 有无限制;一个线程抓完一个
网页后要适当停顿(sleep);最多允许与被搜集站点同时建立2 个连接(本地做网页解析的
线程数则不限)。
(7)采用多线程并行编程技术,提高搜集速度。
1