一、引言
1.1 编写目的
明确项目软件功能与需求。
1.2 预期读者
(1)对爬虫项目有调研需求的程序员
(2)对爬虫软件有所需要的各类用户
1.3 项目背景
互联网信息繁杂冗余,虽然有搜索引擎如百度、谷歌给一般用户提供内容检索分类呈现的服务,这些引擎的表层功能虽然满足了一般互联网用户的需求,但是比较广泛不具体,为了让网络信息检索获取功能更加的具体专一,我们提出一个专属网络爬虫项目,使其能提供网上搜索相关内容并归类的服务,满足特定用户的需求。
1.4 项目范围
(1)能够爬取计算机学习相关内容(网页、论文、讲演稿、技术文档、视频、问答等等);
(2)能够对爬取的内容进行分类(根据计算机相关的关键字),并支持手工分类;
(3)能够根据指定的线索进行爬取或重新爬取(支持动态添加);
(4)能够支持不间断爬取;
二、总体描述
2.1 产品前景
随着互联网的发展壮大,人们获取信息的途径逐渐被网络所替代。互联网发展初期,人们主要通过浏览门户网站的方式获取所需信息,但是随着Web的急剧发展, 用这种方式寻找自己所需信息变得越来越困难。目前,人们大多通过搜索引擎获取有用信息,因此,搜索引擎技术的发展将直接影响人们获取所需信息的速度和质量。而爬虫作为搜索引擎的主要部分,发展前景良好。
2.2 产品功能
从网上搜索相关内容, 并归类。
2.3典型用户
2.3.1一般用户
用户 | 描述 |
学生 | 有论文调研需要的大学本科生、研究生、博士生,使用我们的爬虫软件可以快速获取相关pdf和doc文档的下载链接并建立下载任务 |
项目经理 | 在需要做偏向调查的项目里,除了线下线上的问卷调查,项目经理还有必要通过对比网民的网页浏览次数和问答网站的问答情况来预测偏向情况 |
网页开发者 | 他们自家的网站规模较大,需要有一个专属的搜索引擎 |
2.3.2典型用户
名字 | 张磊 |
性别、年龄 | 男、23岁 |
职业 | 本科生 |
收入 | 实习生 |
知识层次和能力 | 大学 |
生活/工作情况 | 在导师的无人机实验室工作 |
动机、目的、困难 | 导师分配了无人机灭火的调研任务,但是相关论文太多,逐个查看建立下载任务太耗费时间 |
用户偏好 | 喜欢上百度论文通过关键字查找论文 |
用户比例 | 相当多 |
典型场景 | 搜索下载论文 |
典型描述 | 最主要是省事 |
2.4场景
2.4.1背景
(1)典型用户:张磊
(2)用户需求:在百度论文的网页上下载含关键字“无人机”、“灭火”的论文
(3)假设:百度论文上的论文原文链接和下载链接均可用而且相关论文多达100篇以上
2.4.2场景
张磊参加的无人机实验室里面新开了一个无人机灭火的项目,这个项目此前实验室并没有着手过,所有东西都要从零开始,导师给项目成员张磊分配了一个调研的任务,希望他在一个下午把这些论文准备好做个简单的报告。张磊回到宿舍打开了百度论文的网址,他发现里面的相关论文很多,逐个逐个下载相当耗时。
这时候张磊打开了我们的爬虫软件,他在URL Seed栏里填入百度论文的网址,在关键字里输入“无人机”、“灭火”,点击pdf按钮,设置爬取页面上限200,等待一番过后,下载任务创建完毕,张磊只需要等待下载中的pdf一个个完成,然后逐个逐个阅览,为他节省了大量的时间。
三、系统功能
3.1 描述和优先级
软件打开并输入各项参数之后,用户就可以要求爬虫开始爬取。在爬取过程中用户可以在任一时刻停止爬虫的爬取动作并就当前已爬取的URL进行操作,优先级为高。
3.2功能性需求
需求编号 | 需求名称 | 需求描述 |
1 | url提供 | 需要提供seed url作为爬虫的起点 |
2 | 爬取页面设限 | 需要限制爬虫爬取上限来让爬虫及时停止作业 |
3 | 关键词设置 | 设置爬取关键词,缺省为通常爬取 |
4 | 保存地址选择 | 选取保存路径 |
5 | 服务器连接 | 需要连接指定服务器,服务器并不是全天开放 |
3.3非功能性需求
需求编号 | 需求名称 | 需求描述 |
1 | 性能需求 | 执行高效不崩溃 |
2 | 可靠性需求 | 异常操作弹窗操作并挂起程序 |
3 | 适应性需求 | 提供接口供其它软件引用 |
4 | 系统运行环境需求 | 仅支持win7及以上的win pc系统 |
四、外部接口需求
4.1 用户界面(User Interface)
“艾玛室”的UI界面将抛弃“Newbe”团队的用户界面重新设计。软件有帮助页面来帮助用户如何进行操作。界面上有多个参数需要用户根据需求进行填写,有的为可缺省,有的参数则需要必填。
4.2 软件接口(Software Interface)
爬虫会将所爬取的数据存入到我们已设计好的数据库中,提供给其他两个小组使用。