及周期性的增量抓取。
在爬虫程序执行数据抓取的过程中,采用HTMLParser对获取到的新闻信息进行元数据抽取,将新闻的URL、标题、内容、发布方、发布时间、新闻类别等元数据以及新闻的图片存入SQL Server数据库中。
5.1.1 爬虫程序初始界面
爬虫程序的初始界面如图5-1所示。本程序利用SWING实现,界面上方是功能选区,管理员用户可以指定爬行操作的数据源,进行数据抓取过程的相关操作。界面下方的空白区域使用JTextArea实现,其作用是截获系统的控制台输出并进行显示,用于指示当前的爬行动态信息。界面底部使用JProgressBar实现了一个爬行进度指示条,用于指示当前爬行操作的执行进度。
图5-1 爬虫程序初始界面
5.1.2 "建立连接"操作
用户点击"建立连接"按钮可以获取到数据库的连接,通过点击"测试连接"按钮可以连接到测试数据库进行各类测试操作而不影响主数据库的数据。用户在点击"建立连接"按钮后,在控制台进行当前状态输出,系统状态由NotLinked变为Linked。操作效果如图5-2所示:
图5-2 "建立连接"操作
5.1.3 "开始爬行"操作
用户在取得到数据库的连接之后,可以通过选择新闻类别(可细分为china、world、society、mil)开始抓取数据,数据来源和爬行限制选项可在界面上部进行控制。例如我们选择对于china对应的国内新闻进行爬取则程序会对国内新闻开始进行抓取(如图5-4所示)并将帖子信息写入到数据库中(如图5-5所示)。
图5-3 需要抓取的新闻列表
图5-4 正在进行抓取
图5-5 新闻信息已写入数据库中
5.2 数据可视化模块
5.2.1 欢迎页
用户在进入新闻爬虫系统后,系统会弹出欢迎页面,并对该系统主要功能进行显示。如图5-6所示:
图5-6 系统欢迎页面
5.2.2 查看各类新闻
用户需要选择相应的新闻类别,也可输入关键字,日期进行检索。例如在新闻类别下选国内下的港澳台快讯,然后输入关键字,日期关键字为"台湾"时间为2014-06-09,进行检索,则检索过程图如图5-7所示:
图5-7检索过程图
检索的结果图如下图5-8所示:
图5-8 检索结果图
当点击第二个结果时新闻内容展示图如下图5-9所示:
图5-9新闻内容展示图
5.2.3 按时辰分析折线图
用户需要输入日期进行检索,查看当前日期下的新闻数量随时间的变化图。例如日期设定为"2014-06-08",进行分析,则显示出的统计图如图5-10所示:
图5-10 按时辰分析折线图
根据分析结果可以看到新闻发布的高峰期以及新闻发布数量随时间变化的趋势。
5.2.4 新闻类别分析柱状图
用户需要输入日期进行检索,查看当前日期下的相应类别的新闻数量,当用户不输入日期时就显示相应类型的全部的新闻数量。分析柱状图如图5-11和5-12所示:
图5-11未输入任何日期的柱状分析图
图5-12 搜索"2014-06-08"后的类型分析柱状图
分析结果显示,当没有输入任何时间时,国内新闻共576条,国外591条,社会578条,军事354条,可见除了军事新闻相对较少外其他三种数量差不多。当输入时间为"2014-06-08"时国内新闻69条,国外29条,社会23条,军事12条,可见仍然是军事新闻数量最少。
5.2.5 新闻小类别分析柱状图
用户需要输入日期进行检索,查看当前日期下的相应类别的新闻数量,当用户不输入日期时就显示相应类型的全部的新闻数量。分析柱状图如图5-13和5-14所示:
图5-13 未输入任何日期的柱状分析图
图5-154输入2014-06-08后的类型柱状分析图
结果显示不管是新闻总数还是某一天的新闻数各地新闻的数量都是做多的,其次就是社会万象,而最少的应属奇闻轶事和环球新闻。
5.3 本章小结
本章节对新闻爬虫系统进行了功能模块的详细设计并完成了系统的开发实现工作,对于数据获取模块以及数据可视化模块进行了详细的设计实现和功能说明。
6 系统测试与发布
系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。本章节按照系统测试的原则设计出多个测试用例,根据系统测试的常用方法对新闻爬虫系统进行测试。
6.1 软件测试的目标和方法
6.1.1 软件测试的目的
软件测试的目的是指发现软件中的错误和缺陷并加以改正,它不仅是软件开发阶段的有机组成部分,而且在软件工程(即软件定义、设计和开发过程)中占据相当大的比重。应该排除对测试的错误观点,设计合适的测试用例,用尽可能少的测试用例,来发现尽可能多的软件错误。
可以服务于测试目标的规则为:
1、 测试是一个为了发现错误而执行程序的过程。
2、 一个好的测试用例是指很可能找到迄今为止尚未发现错误的测试用例。
3、 一个成功的测试是指揭示了迄今为止尚未发现错误的测试[9]。
软件测试是软件质量保证的关键环节,直接影响着软件的质量评估。首先,测试并不仅仅是为了要找出错误,通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷以便改进;其次,没有发现错误的测试也是有价值的,完整的测试是评定软件质量的方法之一。
6.1.2 软件测试的方法
软件测试用例的设计方法大体可分为两类:黑盒测试和白盒测试。
软件的黑盒测试又称为"行为测试",这种方法把测试对象看作一个黑盒子 ,测试人员可以完全不考虑程序内部的逻辑结构和内部特性,只需要依据程序的需求规格说明书,检查程序的功能是否符合其需求。黑盒测试可用于各种测试。
软件的白盒测试又称为"结构测试",这种方法是把测试对象看作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构以及有关信息来设计或选择测试用例,从而对程序所有逻辑路径进行测试,检查程序的功能是否符合其功能需求。白盒测试主要用于对程序模块的测试[10]。
6.2 测试用例
6.2.1 测试用例设计原则
测试用例是一份关于具体测试步骤的文档,它描述了测试的输入参数、条件以及配置、预期的输出结果等,以判断被测软件的工作是否正常。
测试用例编写应该遵循的原则如下:
1)测试用例要达到最大覆盖软件系统的功能点,测试工程师应该在测试计划编写完成之后,在开发阶段编写测试用例,参考需求规格说明书和软件功能点对每个功能点进行操作上的细化,尽可能趋向最大需求覆盖率;
2)测试用例对测试功能点、测试条件、测试步骤、输入值和预期结果应该有准确的定义;
3)测试用例的设计应该包括各种类型的测试用例,在设计测试用例时,除了满足系统基本功能需求外,还应该考虑各种异常情况、边界情况和承受压力的能力等。
6.2.2 设计测试用例
针对系统不同的功能模块,设计8个测试用例分别进行测试,如表6-1至表6-8所示:
表6-1 测试用例一
测试用例编号 Testing_Crawling 测试项目 数据获取模块手动抓取功能 预设条件 当前已连接到数据库服务器 输入 数据源URL种子集合 操作步骤 (1)选择数据来源
(2)点击"爬取所有新闻"按钮 预期输出 (1) 抓取的数据逐条存入数据库中
(2) 抓取状态实时输出至控制台状态栏 表6-2 测试用例二
测试用例编号 Testing_KeepCrawling 测试项目 数据获取模块增量抓取功能 预设条件 当前已连接到数据库服务器 输入 需要进行增量采集(周期性任务)的页面URL 操作步骤 (1)选择数据来源
(2)点击"增量抓取"按钮 预期输出 (1) 增量抓取的数据逐条存入数据库中
(2) 抓取状态实时输出至控制台状态栏
(
上一篇:
数据库大作业_-教务管理系统—华中科技大学
下一篇:
上海电气集团毕业实习报告