爬虫项目之NABC
Need
在如今的互联网市场上相关的网络爬虫软件已然很多,要想赢得客户,高效、稳定、创新都必不可少的。
我们初步阅读和运行了上一届团队的项目,决定从以下几个方面修改和完善创新这一项目:
1.改善对爬取网页的分类策略
某些URL抓取的数目会十分庞大,而用户的使用该软件的需求就是要快速地找到最需要的信息,如果直接把这一大串URL或者初略地进行分类返回给用户,反而让用户不知从何下手。我们的软件是针对计算机科学来爬取的,而计算机领域中信息多种多样,这要求我们需要一个更为高效和快速的分类器,尽可能运用最佳的分类策略对爬取的URL群进行分类。从而能把用户最需要的信息反馈出来。
2.增强软件的稳定性
互联网市场中不乏极具创新的软件,但有些软件BUG频出的现象令很多被它的新颖吸引来的客户摇头而归。我们这几天对学长的软件进行了试用,常会发现崩溃的现象。这些崩溃往往是因为客户的错误操作而造成的。但是这最本质的原因还是程序本身的鲁棒性不够强大。一个好的软件应该能尽可能包容用户的操作错误并给予提示,而不是直接崩溃而让用户不知所措。所以稳定性的增强将是我们进行这一项目的最要课题之一。
3.增加爬虫的爬取性能
根据老师的要求,我们的爬虫需要能爬取一个网页的多级链接,但是因为在实际中很多链接是我们并不需要的。所以我们会完善我们的爬取策略,譬如在爬取时我们可以摒弃这些链接,从而提高我们的爬取效率,使得我们爬虫所提供给用户的信息更能满足需求。
4.使爬虫更人性化
在试用上一届团队的时候我们发现用户的选择项还是比较少的。我们希望能够更多的知道用户想要什么,让我们的爬虫给用户更多的选择空间。这样做不仅能更快速的返回用户所选择信息,还能更方便地进行爬取路线的剪枝,提高爬取效率。
5.进行功能创新
这一项目已经有几届学长做过了,他们当时也在力求创新,从一开始只能抓网页发展到抓视频等等。我们这一小组也会将这一创新精神延续下去。在课上老师提到的一个点子就令我们非常感兴趣:能不能让爬虫脱离爬和停的指令,实现自动爬。我们将在今后深入代码和思想的过程中尽可能抓住能够创新的可能性。
Approach
1.我们会完善甚至重构我们的分类器,引入一切更为高效的分类策略。譬如在根据词频分类时不仅仅是根据最高词频的那一个词,而是根据多个高频词并进行一些简单的分析再来进行分类。我们的分类器应该能够判断什么时候应该更大局,更多元的考虑一个URL的信息来确定它属于哪一类,而什么时候应该更注重一个显著的特征进行分类。
2.我们会将我们上学期面向对象课程中的知识学以致用,更系统,更有针对性的进行异常的捕捉和抛出。同时输入的处理也是我们关注的一个重点,我们要求我们的软件能够尽可能包容用户的各式输入。在输入的处理这一块我们可能会用到正则,并全面的分析错误输出的样式。
3.我们发现爬虫的爬取过程真是一个图的遍历,这就联系到我们的算法知识。我们会更准确,更多地进行约束条件的分析,是的遍历路线的剪枝能够高效的进行。同时我们在进行项目的过程中会留意遍历策略的选择,有没有一种遍历策略的效率能比深度遍历和广度遍历更优?
4.在项目的后期我们会特别安排人对软件的界面进行设计,能使之更亲和。同时设计多个用户选择项,将用户的选择告诉我们的软件,能让我们的爬虫选择最优的爬取路线,从而返回用户需要的信息。
5.在我们还没更深的融入这一项目之前我是不提倡空谈创新的。我们将会在项目的进行过程中细心留意,发现问题,尽可能抓住能够创新的契机。同时我们还会试验是否能够让爬虫实现自动爬的功能。
Benefits
1.用户能够得到更为准确的信息分类,从而选择自己所需要的信息。
2.在使用过程中崩溃以及一些卡顿的减少,能够给予用户更好的软件体验。
3.爬虫效率的提高能够更快的响应用户的请求,及时地返回爬取的结果。
4.让用户能够感觉到我们友善人性化的界面,给予观众更多丰富的选择,同时更有针对性的返回信息。
5.创新毋庸置疑是能够丰富用户的体验的,我们需要创新让用户觉得我们的作品很新颖,愿意使用我们的软件。
Competition
界面的包装,新颖的功能必然是吸引用户的渠道,但是一个软件最能得到用户并留住用户的还是它的核心功能。我们认为网络爬虫最主要的竞争力还是它的效率。网络爬虫是自动获取网页内容的程序,是搜索引擎的重要组成部分,而百度和搜狗等国内龙头搜索引擎能够成功必然离不开他们强大的爬取算法。
下面我将讨论我们团队所重视的方向及其带来的竞争优势:
1.核心算法的优越及其带来的时间效率
在计算机领域有流传着这么一句话:算法走多远,计算机走多远。可见一个优秀的算法对于一个软件何其重要。我们会细心研究学长的算法,尽可能将算法更优化,从而使得我们爬虫的爬取效率能够得到提高。
2.人性化设计
我们在项目进行过程中会特别注重软件的人性化设计。尽可能让用户能够根据自身需求来进行选择,让用户拥有更多的主动权。
3.功能的创新
我们不必手动进行爬取,让软件能够自动爬取信息,返回最新的网页内容,用户只需要设置好需求就安心等待结果。
发布
当今的世界是金子也不一定能发光。软件制作好后我们应毛遂自荐,重视推广。在项目开始时我们初步制定了以下几个推广方式,待项目完成时根据具体情况进行选择:
1.在各大软件网站发布我们的软件,例如天空下载站,华军软件园,绿色软件联盟等等。
2.建立一个推广群,在发布的网站上留下我们的群信息,表达希望用户加群的意愿,然后实时地收集用户的反馈信息,并通过喜爱软件而加群的用户加大我们推广力度。
3.在一些社交平台上进行广告推广,比如微信,QQ空间,人人网等等。
4.如果技术允许,制作一些网页小弹窗,并制作一个属于我们团队的官网。
通过小组成员的宣传,预计一周的用户能在500左右。