【Beta版本发布】爬虫队长装备全面更新!
一、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版本发布】爬虫队长装备全面更新!的更多相关文章
- Beta版本测试报告以及Beta版本发布说明
Beta版本测试报告 请根据团队项目中软件的需求文档.功能说明.系统设计和Beta阶段的计划安排,写出软件的测试过程和测试结果,并回答下述问题. 在测试过程中总共发现了多少bug?每个类别的bug分别 ...
- 团队作业-Beta版本发布
这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 团队名称 Three cobblers 这个作业的目标 Beta版本发布报 ...
- beta版本发布说明与总结
1.发布说明: 软件介绍: deta版本的发布最终是一个可安装使用的窗体程序,已经由Alpha版本的应用解决方案完成到一个程序: deta版本解决了Alpha版本遗留的软件技术方面错误问题,以及针对有 ...
- 易货Beta版本发布说明
说明 由于前几天确实比较忙,所以没来得及写发布说明. 功能 我们在beta版本主要加入了以下几个功能: 一:增加了用户的发布界面 二:增加了用户的购买界面 三:使用下拉刷新取代了之前的handler后 ...
- Beta版本发布说明
发布地址 https://github.com/LongWerLingShi/DataObtainingAndHandling/tree/beta 版本开发背景 首先,应软件工程课程要求,我们小组针对 ...
- 学霸网站-Beta版本发布说明
项目名称 学霸网站 项目版本 Beta 项目团队 ourteam 发布日期 2015-1-5 一.Alpha版本实现功能简介: 1.匿名提问 2.匿名回答 3.采纳功能 4.登录.注册失败后,用户名等 ...
- Beta版本发布报告
项目名称 学霸系统写手机客户端 项目版本 Beta版本 负责人 北京航空航天大学计算机学院 hots团队 联系方式 http://www.cnblogs.com/hotsbuaa/ 要求发布日期 20 ...
- Pipeline组Beta版本发布说明
项目名称 Pipeline 项目版本 Beta版本 负责人 北京航空航天大学计算机学院 IloveSE 小组 联系方式 http://www.cnblogs.com/IloveSE 要求发布日期 20 ...
- Beta版本发布!
该作业所属课程:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业地址:https://edu.cnblogs.com/c ...
随机推荐
- Ubuntu + python pip遇到的问题
今天在做Flask跨源资源共享(CORS)的时候在安装flask-cors时遇到了两个问题. 首先我是在Ubuntu环境下安装的,整了好一会才弄得出来,现在整理一下. 安装flask-cors pip ...
- Mysqli面向对象操作数据库
Mysqli面向对象操作数据库 首先配置一下数据库: 接着用PHP中的Mysqli扩展库面向对象查询这个数据表. 操作分为以下几个步骤: 连接数据库 操作数据库 处理结果 关闭资源 <?php ...
- centos7下安装docker(13.3volume生命周期管理)
本章讨论:volume的备份,恢复,迁移和销毁 1.备份 通过前面的大量的实验,我们知道volume 是依赖host存在的,是host中的文件或目录,所以volume 的备份实际是对文件系统的备份. ...
- [ZJOI2005]午餐
嘟嘟嘟 贪心+dp. 首先贪心很容易想到,把吃饭时间长的人排在前面.因为打饭时间的顺序对最终答案没有影响,所以可以以吃饭时间为关键字排序. 然后就是dp了(我当时还自信满满的贪心交了一发--显然WA啊 ...
- jquery ajax 方法实例
每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 直接上代码, ajax实例: $.ajax({ type : & ...
- python 上传百度语音识别+文字返回结果
1文字生成语音 #!/usr/bin/python3 import urllib.request import requests#导入requests库 import urllib import js ...
- Apache Ant安装 验证
1.下载Apache Ant 去官网下载ant,官网地址:http://ant.apache.org/ 我下载的是apache-ant-1.10.1-bin.zip 直接解压,放到制定目录下,如C:\ ...
- day16 Python 内置函数 大体演示想看就看,会用就行
1.abs() 获取绝对值 a = -10 print(a.__abs__()) 结果: 10 2.all() 接收一个迭代器,如果跌电气的所有元素都为真,那么返回True,否则返回False tm ...
- MATLAB 图形着色
1.matlab中的颜色查找表函数: (1)autumn:从红色向橘黄色.黄色平稳过渡: (2)bone:为含有较高的蓝色组分的gray颜色查找表: (3)colorcube:包含RGB颜色空间中尽可 ...
- springzuul本地路由和跨服务器路由问题
阿里云服务器在旧新服务迁移过程中,发现路由到认证中心找不到服务 解决办法: 在路由配置里面使用下面的配置 #zuul.routes.claimconf.path=/claimconf/**#zuul. ...