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左右。

爬虫项目之NABC的更多相关文章

  1. Teamwork——Week4 团队项目之NABC

    项目框架——NABC模型 一.N(Need需求) 我们组主要的用户对象是第三小组——UI小组的同学们,因此我们的用户需求就是他们的数据需求. 1)提供给UI小组整理好的数据库,和前一组讨论好数据结构. ...

  2. 基于webmagic的爬虫项目经验小结

    大概在1个月前,利用webmagic做了一个爬虫项目,下面是该项目的一些个人心得,贴在这里备份: 一.为什么选择webmagic? 说实话,开源的爬虫框架已经很多了,有各种语言(比如:python.j ...

  3. 实用的开源百度云分享爬虫项目yunshare - 安装篇

    今天开源了一个百度云网盘爬虫项目,地址是https://github.com/callmelanmao/yunshare. 百度云分享爬虫项目 github上有好几个这样的开源项目,但是都只提供了爬虫 ...

  4. 推荐几个优秀的java爬虫项目

    java爬虫项目   大型的: Nutch apache/nutch · GitHub 适合做搜索引擎,分布式爬虫是其中一个功能. Heritrix internetarchive/heritrix3 ...

  5. Python即时网络爬虫项目启动说明

    作为酷爱编程的老程序员,实在按耐不下这个冲动,Python真的是太火了,不断撩拨我的心. 我是对Python存有戒备之心的,想当年我基于Drupal做的系统,使用php语言,当语言升级了,推翻了老版本 ...

  6. Python即时网络爬虫项目: 内容提取器的定义(Python2.7版本)

    1. 项目背景 在Python即时网络爬虫项目启动说明中我们讨论一个数字:程序员浪费在调测内容提取规则上的时间太多了(见上图),从而我们发起了这个项目,把程序员从繁琐的调测规则中解放出来,投入到更高端 ...

  7. Python即时网络爬虫项目: 内容提取器的定义

    1. 项目背景 在python 即时网络爬虫项目启动说明中我们讨论一个数字:程序员浪费在调测内容提取规则上的时间,从而我们发起了这个项目,把程序员从繁琐的调测规则中解放出来,投入到更高端的数据处理工作 ...

  8. 在Pycharm中运行Scrapy爬虫项目的基本操作

    目标在Win7上建立一个Scrapy爬虫项目,以及对其进行基本操作.运行环境:电脑上已经安装了python(环境变量path已经设置好), 以及scrapy模块,IDE为Pycharm .操作如下: ...

  9. C语言Linix服务器网络爬虫项目(二)项目设计和通过一个http请求抓取网页的简单实现

    我们通过上一篇了解了爬虫具体要实现的工作之后,我们分析得出的网络爬虫的基本工作流程如下: 1.首先选取一部分精心挑选的种子URL: 2.将这些URL放入待抓取URL队列: 3.从待抓取URL队列中取出 ...

随机推荐

  1. MySql详解(一)

    MySql详解(一) 作为一名Java开发人员,数据库的地位不用多说了.从大学时期的SqlServer,到现在最流行的MySql和Oracle.前者随着阿里巴巴的去IOE化,在互联网公司中的使用比例是 ...

  2. Python3中遇到UnicodeEncodeError: 'ascii' codec can't encode characters in ordinal not in range(128)

    在 linux服务器上运行代码报错: Python3中遇到UnicodeEncodeError: ‘ascii’ codec can’t encode characters in ordinal no ...

  3. 5、JUC--实现 Callable 接口

    Callable接口  Java 5.0 在 java.util.concurrent 提供了一个新的创建执行 线程的方式:Callable 接口  Callable 接口类似于 Runnable ...

  4. docker构建Java环境

    FROM java:7 COPY . /usr/src/javaapp WORKDIR /usr/src/javaapp RUN javac HelloWorld.java CMD ["ja ...

  5. JAVA框架 Spring junit整合单元测试

    一.准备工作 1:Junit的需要的jar包: 2.spring的整合的jar包:spring-test-4.2.4.RELEASE.jar 3.代码实现 1) //导入整合的类,帮我们加载对应的配置 ...

  6. day31

    今日内容 在python中使用TCP协议的客户端与服务端进行通信 服务端代码: ############################################################ ...

  7. Java基础—面向对象

    一.什么叫面向对象 万物皆对象(待更正) 二.面向对象三大特征 抽象:把一类对象共同特征进行抽取构造类的过程,包括两种抽象:第一种是数据抽象,也就是对象的属性.第二种是过程抽象,也就是对象的行为 封装 ...

  8. 2017-2018-2 20155230《网络对抗技术》实验5:MSF基础应用

    基础问题回答 用自己的话解释什么是exploit,payload,encode. exploit 就是运行该模块吧,在msf的模块中配置好各项属性后exploit一下就开始运行使用该模块了 paylo ...

  9. 20155327 李百乾 Exp7 网络欺诈防范

    20155327 李百乾 Exp7 网络欺诈防范 基础问题回答 (1)通常在什么场景下容易受到DNS spoof攻击 就此次试验来看,被收到NDSspoof攻击,首先要被攻击机扫描,并被设置为目标,所 ...

  10. 列表生成式+过滤器(filter)+映射(map)+lambda总结

    这些都是python的特色,不仅强大,而且好用,配合起来使用更是无敌. 零.lambda lambda用于产生一个匿名表达式,组成部分为:lambda + ‘函数表达式’ ‘函数表达式’由一个冒号加上 ...