过滤完后的URLs,再判断它为站内URL或者为站外URL。一般情况下同一网站内的URL的host名因该是一致的。所以我们可以通过判断URLs中是否包含站点host就可以了,如果为站内URL则加入到缓存队列。
4.4. URL队列管理
    URL消重处理,我是用LRU算法加上MD5压缩算法来实现的,因为URLs的数量非常巨大,为了节省内存空间。我先通过MD5压缩来得到每个URL对于的一个hash码。这个hash码的长度相对较小,可以节省内存开销。而且产生碰撞的几率非常小,可以忽略不计。
    然后这个URL消重队列的文护是用LRULinkedHashMap来实现的,这个Map它总是淘汰重复次数最少的URL。这样就算URL数过大,也可以尽量避免重复下载URL。
    有了这个map以后,我就会用URL到里面去碰撞。因为有些网站的URL写法不固定。也许是同一个URL,但是有些在最后一位接续"/"符号,而有些则没有接续。这样当进行URL去重处理时,会认为它们不是一个URL。所以我们必须先除去后面的"/"符号,再进行URL去重判断。
5.系统测试
5.1.测试定义
    软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤测试:为了发现软件中的错误而运行软件的过程。
5.2.测试方法及结果
    该系统使用以黑盒测试方法进行测试:
    黑盒测试:它是把程序看成一个黑盒子,完全不考虑程序内部结构和处理过程。黑盒测试是在程序接口进行测试,它只是检查程序功能是否按照规格说明书的规定正常使用。黑盒测试又称功能测试。
测试用例:
(1)    运行测试:打开程序看是否能正常运行
(2)    功能测试:
a.    在url 文本框中输入要抓取主题的网址,点击run 运行。
b.    查看Log 是否生成
c.    设置系统参数结果是否有变化
    测试结果:系统应用功能正常,各程序模块正常。
结 论
从课题着手到现在论文完成,经历了3个月的时间,在这个3个月里,我不断学习探索,从对网络爬虫一无所知,到成功编写出网络爬虫程序。对网络爬虫中比较主流的技术都有了更深的理解。网络爬虫是一个自动搜集互联网信息的工具,实现了网络爬虫,就可以在互联网这样一个巨大的信息海洋里遨游。
这篇论文实现了一个基于广度优先策略的多线程爬虫程序,可以搜集站内URLs,但是在功能细节上还有很多不足,比如系统不够优化,功能不够强大。对于网络爬虫这个庞大的知识体系来说,这篇论文实现的功能只能算是一些皮毛,要深刻地理解爬虫程序,在爬虫程序设计中有所作为,还需要长达几年,或者更长时间的积累,所以在以后的时间,我将继续研究网络爬虫技术,分析设计一些比较复杂的爬行策略,优化爬虫程序,希望在这一课题上达到另一个高度。
上一篇:数据挖掘中的隐私保护技术研究
下一篇:JSP在线选课系统设计+需求分析+可行性分析

数据挖掘的主题标绘数据获取技术与实现

无跳线主板BIOS高级设置【706字】

联结主义的连续记分IRT模...

Project软件的主要功能及基...

提高网站茬Google中的排名...

互文性:网络时代對后结...

Web的多媒体CAI課件开发過...

国内外图像分割技术研究现状

10万元能开儿童乐园吗,我...

AT89C52单片机的超声波测距...

承德市事业单位档案管理...

神经外科重症监护病房患...

公寓空调设计任务书

C#学校科研管理系统的设计

医院财务风险因素分析及管理措施【2367字】

中国学术生态细节考察《...

志愿者活动的调查问卷表