一、Beta阶段目标回顾


  1.为了解决Alpha阶段线程异常泛滥的问题,我们需要一个线程池。

  2.为了爬取得到的文件正确可用,我们需要一个异常清理器。

  3.为了不间断爬取,管理员不必频繁运行程序点,我们需要实现动态爬取。

  以上的三个主要目标在Beta开发阶段都得到了实现,除此以外,因为我们本次开发模式是“集市”,根据其他相关小组的需求我们还额外实现了两个主要功能:

  1.视频链接的大量爬取。

  2.基于祖先网页的专门爬取。

二、更新内容


 1 新增功能

1.1 动态爬取

  在Alpha阶段中,如果在爬虫正在运行的过程中,我们想要加入新的种子链接,就不得不关闭当前的爬取动作,重新运行程序后添加进行爬取。

  这样的操作造成如下多个不良影响:

  1.爬取的内容重复冗余性增加。

  2.因为每个种子网页的最大爬取数目是不可预见的,管理员需要经常留意当前爬取动作是否已停止,进而决定是否重新运行程序爬取新网页。

  动态爬取是能够在爬虫运行时不停止爬虫当前的爬取动作而添加种子URL,管理员可以在任何需要的时候进行添加动作。新功能在解决了以上两个不良影响的同时,还具备以下几个优势:

  1.能为每个种子URL设定爬取数目。

  2.时间容错性大,能够允许任何时间进行操作。

  3.不必繁琐的关闭和重新运行程序,操作简易。

  如下是两种动态爬取功能,第一种为根据当前爬取数目是否达到要求来决定已添加的种子URL是否入列,第二种为根据时间周期来入列。  

  

1.2 视频链接爬取

  设计了多个对视频链接的判定条件,由子链存在视频文件回溯到父链接,实现视频链接的爬取。选择爬取视频链接而非视频文件有如下考虑:

  1.视频文件较大,下载速度慢,而视频链接既能满足对视频的需求,并且大小和普通网页并无二致。

  2.其他小组的需求。

  

1.3 异常清理器

  通过对Alpha阶段已爬取的文件和数据库的检查我们发现如下多个问题:

  1.存在数据库所存文件信息在文件夹中找不到的情况。

  2.存在数据库中存储路径为Null的情况。

  3.存在重复文件的情况。

  我们对以上多种异常情况进行分析,发现影响因素较多:Alpha版本爬虫无动态爬取而频繁运行程序导致的重复下载;某些网页不提供下载权限等等。我们根据分析认为难以解决以上所有影响因素,并且数据库和文件夹已然储存着异常信息。所以设计了异常清理器,专门的告知并对异常进行清理。

  

1.4 线程池

  针对线程异常不可控,难调试的问题,该阶段我们专门实现了线程池,通过控制程序线程的数量并对线程异常问题进行处理,使得网页的最大爬取数,最大爬取时间都有增加,已在测试报告中列出。

1.5 通过过滤规则实现子孙网页“血统纯正”。

  在“集市”的开发过程中我们发现经常有这样一种需求:给我们一个种子URL进行爬取,但我们不希望爬到其他领域的链接中。例如我们需要爬cnblogs上的博文,但我们不需要爬取cnblogs过程可能链接出去的百度、搜狐等网页。因此我们通过过滤规则来保证子孙网页与种子网页的联系。

  如下我们输入了一个过滤规则:http://tieba.baidu.com/。则所有不含有http://tieba.baidu.com/的网页我们都不需要。

  

2 主要BUG修复

  以下为修复时间较长,影响较大的BUG修复:

  1.修复了一个过滤器BUG,该BUG会导致爬虫过滤器过滤掉大量的正常网页。

  2.修复了一个爬取过程中的判断BUG,该BUG会导致在单次爬取动作中可能爬到具有重复URL。

  3.修复了一个队数据库操作的BUG,将更新数据库的方法改为异步互斥更新方式,保证了同一时间只有一个线程占用数据库,保证了数据库数据的正确性,同时避免了SQLException。

3 相关优化

  1.优化了对数据库数据的统计操作,使得Analyze响应时间更快。

  2.优化了进行爬取时对进度显示以及对数据库操作的方法,使得单位时间爬取的网页数目更多(详情见测试报告)。

  3.优化了爬取方式,把网页、pdf、ppt等各文档文件的爬取和下载功能充分联系到一起,提高了爬取效率。同时删减了相应的代码文件,减少了代码量。

三、环境要求


操作系统要求 windows XP、windows 7、windows 8
运行环境要求 最新版本的JRE
数据库要求 Sql Server 2008及以上

四、安装方法


  把jar可执行文件复制到本地即可。

五、已知的缺陷与限制


  a)界面的功能键会因不规范操作而导致卡死。

六、发布方式和发布地址


  该版本爬虫部署在服务器10.2.26.60上,可自行拷贝试用。

【Beta版本发布】爬虫队长装备全面更新!的更多相关文章

  1. Beta版本测试报告以及Beta版本发布说明

    Beta版本测试报告 请根据团队项目中软件的需求文档.功能说明.系统设计和Beta阶段的计划安排,写出软件的测试过程和测试结果,并回答下述问题. 在测试过程中总共发现了多少bug?每个类别的bug分别 ...

  2. 团队作业-Beta版本发布

    这个作业属于哪个课程  <课程的链接>            这个作业要求在哪里 <作业要求的链接> 团队名称 Three cobblers 这个作业的目标 Beta版本发布报 ...

  3. beta版本发布说明与总结

    1.发布说明: 软件介绍: deta版本的发布最终是一个可安装使用的窗体程序,已经由Alpha版本的应用解决方案完成到一个程序: deta版本解决了Alpha版本遗留的软件技术方面错误问题,以及针对有 ...

  4. 易货Beta版本发布说明

    说明 由于前几天确实比较忙,所以没来得及写发布说明. 功能 我们在beta版本主要加入了以下几个功能: 一:增加了用户的发布界面 二:增加了用户的购买界面 三:使用下拉刷新取代了之前的handler后 ...

  5. Beta版本发布说明

    发布地址 https://github.com/LongWerLingShi/DataObtainingAndHandling/tree/beta 版本开发背景 首先,应软件工程课程要求,我们小组针对 ...

  6. 学霸网站-Beta版本发布说明

    项目名称 学霸网站 项目版本 Beta 项目团队 ourteam 发布日期 2015-1-5 一.Alpha版本实现功能简介: 1.匿名提问 2.匿名回答 3.采纳功能 4.登录.注册失败后,用户名等 ...

  7. Beta版本发布报告

    项目名称 学霸系统写手机客户端 项目版本 Beta版本 负责人 北京航空航天大学计算机学院 hots团队 联系方式 http://www.cnblogs.com/hotsbuaa/ 要求发布日期 20 ...

  8. Pipeline组Beta版本发布说明

    项目名称 Pipeline 项目版本 Beta版本 负责人 北京航空航天大学计算机学院 IloveSE 小组 联系方式 http://www.cnblogs.com/IloveSE 要求发布日期 20 ...

  9. Beta版本发布!

    该作业所属课程:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业地址:https://edu.cnblogs.com/c ...

随机推荐

  1. Hadoop2.7.6_07_HA高可用

    1. Hadoop的HA机制 前言:正式引入HA机制是从hadoop2.0开始,之前的版本中没有HA机制 1.1. HA的运作机制 (1)hadoop-HA集群运作机制介绍 所谓HA,即高可用(7*2 ...

  2. 为PHP7安装Windows Server 2012 R2过程记录

    因为要安装php-7.0.6-Win32-VC14-x64,需要先安装vcredist2015_x64_14.0.23026.0. 之前安装了Windows Server 2012 R2后,一直无法成 ...

  3. BeanFactory和ApplicationContext的简单介绍

    引言 Spring通过一个配置文件描述Bean及Bean之间的依赖关系,利用Java语音的反射功能实例化Bean并建立Bean之间的依赖关系.Spring的IoC容器在完成这些底层工作的基础上,还提供 ...

  4. 记录线上一次线程hang住问题

    线上发现执行某特定任务在某个特定时间点后不再work.该任务由线程池中线程执行定时周期性调度,根据日志查看无任何异常.从代码研判应该无关定时任务框架,因为对提交的定时任务做了wrap,会将异常都cat ...

  5. ]remove-duplicates-from-sorted-list-ii (删除)

    题意略: 思路都在注解里: #include<iostream> #include<cstdio> using namespace std; struct ListNode { ...

  6. python3 列表的赋值和深浅拷贝

    '''列表赋值:不会创建新对象两个列表的内存地址一样'''# lst1 = ["apple", "banana", ["blueberry" ...

  7. 617. Merge Two Binary Trees

    https://www.cnblogs.com/grandyang/p/7058935.html class Solution { public: TreeNode* mergeTrees(TreeN ...

  8. Matlab使用技巧

    (1) Matlab强制退出正在运行的程序A: Ctrl + C(2)如何让Matlab跑完程序后自动关机?A: 在程序的末尾加上一条代码:    system('shutdown -s')   当然 ...

  9. Selenium:浏览器及鼠标、键盘事件

    参考文档:WebDriver官方文档,下载链接:http://download.csdn.net/detail/kwgkwg001/4004500 虫师:<selenium2自动化测试实战-基于 ...

  10. BesLyric 全新版本下载 ( windows \ mac \ linux )

    导读 BesLyric , 一款专门制作 网易云音乐 LRC 滚动歌词的软件! 搜索.下载.制作 歌词更方便! 很荣幸地,自 beslyric 2017 年开发推出以来,得到了很多云村村民的肯定,现在 ...