zoukankan      html  css  js  c++  java
  • 网络资源收集工具概要设计文档

    1.引言

    1.1编写目的

    将之前会议中记录的设计要点进行总结和规划,供团队内开发者和测试人员进行代码编写与测试。

    1.2项目背景

             软件名: 网络资源收集工具

    本软件任务:为下一组元数据抽取和整理工具进行对接,为下一组提供其所需的各类海量数据。

    2.任务概述

    2.1目标

    总的目标是编写一个更快捷,更稳定的爬虫软件,维护并改善学长的代码并在其基础上进行完善创新。

    分开来讲有学长代码规范的编写,学长遗留BUG的修复,多个种子链接功能的添加,广告过滤功能的优化,暂停爬取功能的实现,关键词筛选功能的添加与完善,实时显示抓取过程的图表功能的增加,得到网页的热度排序TOP10的网页,问答页面的筛选与爬取功能的实现,问答页面的筛选与爬取功能的实现,pdf页面的筛选与爬取功能的实现,doc页面的筛选与爬取功能的实现,ppt页面的筛选与爬取功能的实现。

    2.2运行环境

    系统:WINDOWS XP,WINDOWS 7,WINDOWS 8

    Java版本:需安装最新版本的JRE

    数据库版本:在联网的环境下可以直接连接服务器的数据库,版本为SQL Server 数据库位置:表名:[yuanhang].[dbo].[fileinfo]

    2.3需求概述

    将35w+个符合条件的网页,问答,文章放入数据库,具体请参见需求文档。

    2.4条件与限制

    首先,大多数的站点具有排斥爬虫访问的机制,在一段时间内的同一IP的并发访问容易发生暂时拒绝本地客户端的连接导致的503错误。

    其次,网络上可以进行爬取的pdf、ppt、doc文件大多不能符合要求,而与计算机领域紧密相关的pdf、ppt、doc又基本很多都需要注册用户并且具有足够的积分或者账户充值。

    3.总体设计

    3.1处理流程

             需求分析和文档编写                     

       阅读学长代码和学习相关知识   

             为学长代码编写代码规范             

             M1代码编写、复审与测试          

             ALPHA版本发布                                 

             总结上阶段经验教训                       

             M2代码编写、复审与回归测试 

             BETA产品发布

    3.2总体结构和模块外部设计

    Analysis.java

    BarChart.java

    ConnectServer.java

    CraUi.java

    DownLoadFile.java

    DownloadQuiz.java

    DownloadPdf.java

    DownloadPPt.java

    DownloadDoc.java

    HistogramJPanel.java

    HtmlParserTool.java

    Keyword.java

    LinkFilter.java

    LinkQueue.java

    Logo.java

    MyCrawler.java

    PieChart.java

    Queue.java

    RankUrl.java

    State.java

    Url.java

    主要分五个模块:

    UI模块

    网页过滤模块

    文件下载模块

    数据库更新模块

    数据分析模块

    外部数据库元组数据项:

    网页id

    域名

    文件存储路径

    编码方式

    网页类型

    最后被爬到的时间

    更新时间

    关键词

    标签

    IP地址

    3.3功能分配

    Keyword模块

    DownLoadFile模块

    ConnectServer模块

    DownloadQuiz模块

    RankUrl模块

    HistogramJPanel模块

    PieChart模块

    BarChart模块

    过滤

    下载文件

    连接数据库

    爬取问答页

    热度排序

    可视化

    DownLoadPdf模块

    DownLoadDoc模块

    DownLoadPPt模块

    HtmlParserTool模块

    过滤

    下载文件

    连接数据库

    爬取问答页

    热度排序

    可视化

    4.接口设计

    4.1用户接口

    用户界面:

    多种子网址输入框、关键词输入框、爬取页面数输入框、选择文件录入多种子网站复选框、已访问URL视图、实时动态展示图、进度条、开始爬取按钮、爬取问答页按钮、爬取pdf按钮、爬取doc按钮、爬取ppt按钮。

    4.2内部接口

    LinkFilter为DownLoadFile、DownloadQuiz、DownloadPdf、DownloadDoc、DownloadPPt和Keyword提供过滤器的接口

    Url为DownLoadFile、DownloadQuiz、DownloadPdf、DownloadDoc、DownloadPPt和RankUrl提供网址相关属性接口

    State为PieChart、HistogramJPanel和CraUi提供状态更新的接口

    5.数据结构设计

    5.1逻辑结构设计

    1、Url:

    数据项: 域名 oriUrl、IP地址 url、网页编号 urlNo、结果码 statusCode 、被别的文章引用的次数 hitNum 、对应文章的汉字编码 charSet 、文章摘要 abstractText 、作者 author 、文章的权重 weight 、文章的描述 description 、文章大小 fileSize 、最后修改时间 lastUpdateTime 、过期时间 timeToLive 、文章名称 title 、文章类型 type 、引用的链接 urlRefrences

    2、RankUrl:

    数据项: 域名 url 、网站类别 UrlKind 、网址热度排名集合 outUrls

    3、Queue:

    数据项: 将要访问的URL队列  queue

    4、LinkQueue:

    数据项: 已访问的url集合visitedUrl 、待访问的url集合unVisitedUrl 、seedurl集合seedUrls 、tag集合 tagtext 、Url得分表 urlsScoreTable

    5、DownLoadFile:

    数据项: 一级页面网址 myUrl 、过滤器 myFilter 、文件存储路径oripath 、存入数据库ID号 C_ID 、是否符合过滤条空间 flag

    6、DownLoadPdf:

    数据项: 一级页面网址 myUrl 、过滤器 myFilter 、文件存储路径oripath 、存入数据库ID号 C_ID

    7、DownLoadDoc:

    数据项: 一级页面网址 myUrl 、过滤器 myFilter 、文件存储路径oripath 、存入数据库ID号 C_ID

    8、DownLoadPPt:

    数据项: 一级页面网址 myUrl 、过滤器 myFilter 、文件存储路径oripath 、存入数据库ID号 C_ID

    9、DownloadQuiz:

    数据项: 一级页面网址 myUrl 、类别需求 PageKind  、文件存储路径oripath1~5 、存入数据库ID号 C_ID 、是否符合过滤条空间 flag

    10、Keyword:

    数据项: 关键词 keyword

    11、ChartPanel:

    数据项:参见JDK_API文档

    12、HtmlParserTool

    数据项: 解析器parser

    5.2物理结构设计

    1、Url:

    数据项: 域名 oriUrl(String)、IP url(String)、网页编号 urlNo(int)、结果码 statusCode(int)、被别的文章引用的次数 hitNum(int)、对应文章的汉字编码 charSet(String)、文章摘要 abstractText(String)、作者 author(String)、文章的权重 weight(int)、文章的描述 description(String)、文章大小 fileSize(int)、最后修改时间 lastUpdateTime(Timestamp)、过期时间 timeToLive(Date)、文章名称 title(String)、文章类型 type(String)、引用的链接 urlRefrences(String[])

    2、RankUrl:

    数据项: 域名 url(String)、网站类别 UrlKind(int)、网址热度排名集合 outUrls(Set<RankUrl>)

    3、Queue:

    数据项: 将要访问的URL队列  queue(LinkedList<Object>)

    4、LinkQueue:

    数据项: 已访问的url集合visitedUrl(Set<RankUrl>)、待访问的url集合unVisitedUrl(ConcurrentLinkedQueue<RankUrl>)、seedurl集合seedUrls()、tag集合 tagtext()、Url得分表 urlsScoreTable()

    5、DownLoadFile:

    数据项: 一级页面网址 myUrl(RankUrl)、过滤器 myFilter(LinkFilter)、文件存储路径oripath(String)、存入数据库ID号 C_ID(int)、是否符合过滤条空间 flag(boolean)

    6、DownLoadPdf:

    数据项: 一级页面网址 myUrl(RankUrl)、过滤器 myFilter(LinkFilter)、文件存储路径oripath(String)、存入数据库ID号 C_ID(int)

    7、DownLoadDoc:

    数据项: 一级页面网址 myUrl(RankUrl)、过滤器 myFilter(LinkFilter)、文件存储路径oripath(String)、存入数据库ID号 C_ID(int)

    8、DownLoadPPt:

    数据项: 一级页面网址 myUrl(RankUrl)、过滤器 myFilter(LinkFilter)、文件存储路径oripath(String)、存入数据库ID号 C_ID(int)

    9、DownloadQuiz:

    数据项: 一级页面网址 myUrl(RankUrl)、类别需求 PageKind (int)、文件存储路径oripath1~5(String)、存入数据库ID号 C_ID(int)、是否符合过滤条空间 flag(boolean)

    10、Keyword:

    数据项: 关键词 keyword(String)

    11、ChartPanel:

    数据项:参见JDK_API文档

    12、HtmlParserTool

    数据项: 解析器parser(Parser)

    外部数据库元组数据项:

    网页id                                 int(11)

    域名                                     nvarchar(max)

    文件存储路径                   nvarchar(max)

    编码方式                            nchar(10)

    网页类型                            nchar(10)

    最后被爬到的时间         datetime (25)

    更新时间                            datetime (25)

    关键词                                 text

    标签                                     text

    IP地址                                 nvarchar(max)

    5.3数据结构与程序的关系

    程序数据结构

    Url

    RankUrl

    Queue

    LinkQueue

    DownLoadFile

    DownloadQuiz

    Keyword

    ChartPanel

    RankUrl

    LinkQueue

    DownLoadFile

    DownLoadQuiz

    BarChart

    PieChart

    MyCrawler

    DownLoadPdf

    DownLoadDoc

    DownLoadPPt

    RankUrl

    LinkQueue

    DownLoadFile

    DownLoadQuiz

    BarChart

    PieChart

    MyCrawler

    6.运行设计

    6.1运行模块的组合

    通用型爬取: RankUrl模块,DownLoadFile模块,ConnectServer模块,HistogramJPanel模块,PieChart模块,BarChart模块

    聚集型爬取: Keyword模块,DownLoadFile模块,ConnectServer模块,HistogramJPanel模块,PieChart模块,HtmlParserTool模块

    综合型爬取: Keyword模块,RankUrl模块,DownLoadFile模块,ConnectServer模块,HistogramJPanel模块,PieChart模块,HtmlParserTool模块

    问答页爬取: DownloadQuiz模块,ConnectServer模块,HistogramJPanel模块,PieChart模块,HtmlParserTool模块

    pdf爬取: DownloadPdf模块,ConnectServer模块,HistogramJPanel模块,PieChart模块,HtmlParserTool模块

    doc爬取: DownloadDoc模块,ConnectServer模块,HistogramJPanel模块,PieChart模块,HtmlParserTool模块

    ppt爬取: DownloadPPt模块,ConnectServer模块,HistogramJPanel模块,PieChart模块,HtmlParserTool模块

    6.2运行控制

    通用型爬取: 输入种子网址以及需要爬取网页数,将所需网页分类添加到数据库中。

    聚集型爬取: 输入关键词以及需要爬取网页数,将所需网页分类添加到数据库中。

    综合型爬取: 输入种子网址、关键词以及需要爬取网页数,将符合条件的所有网页分类添加到数据库中。

    问答页爬取: 输入需要爬取网页数,选择需要爬取的问答页面种类,将符合条件的所有问答页添加到数据库中。

    pdf爬取: 选择种子txt,将符合条件的所有问答页添加到数据库中

    doc页爬取: 选择种子txt,将符合条件的所有问答页添加到数据库中

    ppt页爬取: 选择种子txt,将符合条件的所有问答页添加到数据库中

    6.3运行时间

    通用型爬取:

    DownLoadFile模块

    ConnectServer模块

    RankUrl模块

    HistogramJPanel模块

    HtmlParserTool模块

    PieChart模块

    BarChart模块

    时间

    55%

    10%

    5%

    10%

    5%

    2%

    3%

    聚集型爬取:

    DownLoadFile模块

    ConnectServer模块

    RankUrl模块

    HistogramJPanel模块

    PieChart模块

    HtmlParserTool模块

    时间

    70%

    10%

    3%

    10%

    2%

    5%

    综合型爬取:

    Keyword模块

    DownLoadFile模块

    ConnectServer模块

    RankUrl模块

    HistogramJPanel模块

    PieChart模块

    HtmlParserTool模块

    时间

    5%

    65%

    10%

    5%

    10%

    2%

    3%


    问答页爬取:

    ConnectServer模块

    DownloadQuiz模块

    HistogramJPanel模块

    PieChart模块

    HtmlParserTool模块

    时间

    10%

    75%

    10%

    2%

    3%

    pdf爬取:

    ConnectServer模块

    DownloadPdf模块

    HistogramJPanel模块

    PieChart模块

    HtmlParserTool模块

    时间

    10%

    75%

    10%

    2%

    3%

    doc爬取:

    ConnectServer模块

    DownloadDoc模块

    HistogramJPanel模块

    PieChart模块

    HtmlParserTool模块

    时间

    10%

    75%

    10%

    2%

    3%

    ppt爬取:

    ConnectServer模块

    DownloadPPt模块

    HistogramJPanel模块

    PieChart模块

    HtmlParserTool模块

    时间

    10%

    75%

    10%

    2%

    3%

  • 相关阅读:
    02-单臂路由实验
    线程高级篇-读写锁ReentrantReadWriteLock
    线程高级篇-Lock锁和Condition条件
    002 flutter的路由管理--命名路由
    fluuter的路由管理--普通路由
    003 文档的操作
    002 索引的操作
    001 elasticsearch的核心概念
    002 使用nacos完成服务的注册和发现
    001 Nacos的基础内容
  • 原文地址:https://www.cnblogs.com/newbe/p/4189834.html
Copyright © 2011-2022 走看看