面向主题的网络蜘蛛爬虫研究与设计+流程图(3)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

面向主题的网络蜘蛛爬虫研究与设计+流程图(3)


2.需求分析
2.1.功能分析
    本系统开发的总体任务是:
    1、锁定某个主题抓取;
    2、能够产生日志文本文件,格式为:时间戳(timestamp)、URL;
    3、抓取某一URL时最多允许建立2个连接;
    4、遵守文明蜘蛛规则:必须分析robots.txt文件和meta tag有无限制;一个线程抓完一个网页后要sleep 2秒钟;
    5、能对HTML网页进行解析,提取出链接URL,能判别提取的URL是否已处理过,不重复解析已crawl过的网页;
    6、能够对spider/crawler程序的一些基本参数进行设置,包括:抓取深度(depth)、种子URL等;
2.2. 性能分析
先进性:采用成熟的计算机软件技术,保障系统适应今后技术发展的需要
可靠性:有一个稳定可靠的系统是确保整个系统正常运行的关键。
    安全性:整个系统不应由于操作失误,甚至恶意攻击而遭到破坏。
3.系统概设计
3.1.系统总体工作流程
图1   Spider详细工作流程
3.2.功能模块设计
(1)主题爬虫URL的处理流程
 
图2   URL状态流程图
(2)抓取算法
    爬虫抓取过程中使用了五个队列,分别是等待队列,处理队列,错误队列,完成队列,抛弃队列。
    等待队列:爬虫解析到的url先保存到等待队列中,在等待队列中的u rI按照特定的排序法则进行排序,等候爬虫的抓取。
    运行队列:url正在被抓取时放进抓取队列,目的是防止url被同时多次抓取。
    错误队列:在抓取过程中出错的urI保存到错误队列。
    完成队列:一个url被爬虫完全抓取之后就将url放进完成队列。
爬虫的抓取算法如下:
    (1)将初始页面url集合放进等待队列,分配每个url一个相关性消息值m,并给每个url同样的相关度值。
   这个相对于后面将要计算到的值较大,初始页面会人为根据主题进行筛选,所以与主题的紧密度高。人为的给定一个高的相关度值优点有两个,首先,减少爬虫的计算量,这些种子站点不需要通过相关度的计算。其次,可以在等待队列中置于较靠前的位置,在以后的更新过程中,可以优先更新。
    (2) 对等待队列中的url,先根据m值大小排序,再根据相关度的大小排序。
    (3) 根据第二步排好序的等待队列,将排序最前的url拿出放进处理队列,爬虫开始抓取。
    (4) 下载网页到本地磁盘,并建立索引,然后将url地址放进完成队列。
    (5)利用解析器解析出网页中的链接与对应的链接文本,并计算链接地址的相关度值。
    (6) 将第5步得到的相关度值与相关度阀值f进行比较,结果分为三种情况:
第一种情况是相关度值大于相关度阀值,且父网页的相关性消息m值等于初始值,则直接传递父网页的m 值给子网页。
第二种情况是相关度值大于相关度阀值,且父网页的相关性消息m 值小于初始值,则恢复m 值为初始值,传递m 值给子网页。
第三种情况是相关度值小于相关度阀值,则将父网页的m 值乘以遗传基因比例b传递子网页的(b值大于0小于1),子网页的相关性消息值是m*b。
    (7) 将url,m值,相关度值放进等待队列,重复第二步。
    (8) 算法结束。
4.系统实现
4.1. 实现工具
    操作系统是winXP,JAVA程序的编写工具是eclipse-SDK-3.2.1-win32 (责任编辑:qin)