Need(需求):
我们小组的研究课题是编写一个更实用的爬虫软件,编写时会应用到学长的部分代码并在其基础上完善创新。
鉴于学长代码已经实现了基本功能,即从网站上面爬取相关的Word文档等与计算机有关的文件和资料,过滤掉不相关的信息。我组将从以下几个方面着手进行改进和完善:
1.加强去广告功能:
如今网络的网页情况,很多网页,包括贴吧、微博都充斥着广告,在其中难免有一些涉及到计算机,但是这些广告的作用却没有实际意义。在学长的代码里的确有相应的删除广告的功能,但是其效果并不明显,在很多情况下不能够很好的识别网络的广告与实际有用的资料,所以会出现一些废数据或数据的遗失。针对这种情况,我组决定将对其广告过滤功能进行完善和修改。
2.分类保存扒取到的文件:
对爬虫扒取下来的资料进行分类是非常重要的,在学长的代码中,并没有将得到的资料输入进数据库并进行分类存储,这样给下一组的开发遗留下来了一些问题,针对这个问题,我组在研究过后认为应该添加是党的分类保存的功能。
3.增加视频抓取功能:
学长的代码仅仅实现一些文本文件的扒取,但是却没有进行对视频资料的扒取工作。但是由于网络上的很多视频都有相应的版权问题,而且,因为大多数视频所占有的硬盘容量都较大,我们将对视频的地址进行爬取并保存进数据库中。
4.CSS和Javascript的网站:
原代码中只能够对HTTP6的网页进行扒取,我们认为这样做会使的资料收集过于局限所以想针对这个问题,将CSS和Javascript的网站的扒取功能添加进去,这样可能会产生大量的代码工作量,只是一个初步的设想。
5.网页质量判定:
某些网站由于相关与计算机知识方面的内容过于贫乏,多次重复搜索只会造成对时间和资源的浪费,针对这一情况,我们认为应该添加一个对网页质量判定的功能来将不合适的网站清除掉,用以提升软件运行效率。
Approach(做法):
1.对于抓取到的网站,得到其中的URL检查下一级网站的AD字段以及下一级网站和关键字的相关程度
上一个学年做这个项目的评价,去广告的功能不够完善,还是有很多广告混了进来。他们在博客上写,说是根据AD字段来判断这个网站是不是广告网站。我们觉得,如果只根据AD字段来判断的话,有可能会把一些无用的转向广告网站的中间网站抓取下来。因此我们觉得应该要多往下检测一级,如果下一级网站中有许多事广告网站,那么就把这个网站排除。因为我们考虑到,如果投放广告的话,最多经过一个网站的中转,否则广告投放也就达不到效果,因此我们考虑多检测一级的方法,应该能够在很大程度上解决抓取到的网站中广告很多的问题。
2.将抓取到的不同的文件,按照文件格式分不同分开保存(先按文件夹分开)
抓取到的网站按照与关键字的相关程度分级、排序。上一学年负责该项目的小组评价中写道,这一组抓取到的文件,并没有分类,所有的文件参杂在一起,导致用户使用不方便。我们想要为这个软件增加一个分类存储抓取到的文件的功能,在抓取到某个文件的时候,就根据这个文件的种类,将其放到这类文件存放的区域,这样软件运行完毕之后,得到已经分类好的文件,让用户使用更加方便。
3.给出视频链接,让用户可以观看源视频
上一个组并没有完成相关视频的抓取功能,我们觉得,如果是网页爬虫的话,本意就是要在互联网上为用户抓取有用的资源,而现在视频资源也是很重要的一种,因此我们想要增加视频抓取功能。将内容与关键词相关的视频也一并反馈给用户,让用户能够观看相关视频。
4.CSS和Javascript的网站
暂定待议。
5.检查关键词在抓取到的网站或文件的标题中是否出现,以及在抓取到的网站或文件的文本中出现频率是否高,依此来判断这个网站或文件对于用户的价值
我们认为如果我们将关键词在其中出现的所有资源抓取下来的话,可能会将一些本不相关,但是关键词有出现的网站或文件抓取下来,但是经过以上方法排除对用户的价值不高的网站和文件之后,我们抓取到的东西的质量就会大大提高。
Benefit(好处):
1.能够从得到的结果中更好地剔除广告网站,优化用户体验
去除广告是我们的爬虫的一个很重要的功能。爬虫的本意就是为用户在互联网上高效地抓取有用的相关资源,如果抓取到的资源中还有大量的广告,就会让用户的浏览变得十分不方便,这就失去了爬虫的意义。我们会多检查到下一级网站,用这个方法排除广告网站。这样可以提高抓取到的资源的质量,让用户更方便地使用爬虫的功能。
2.让用户能够更方便地查找资源
如果爬虫将所有的抓取到的资源都放在一起,当用户需要单一某一种格式的文件的时候,就会很麻烦。我们将抓取到的资源按照种类分开保存,这样可以让用户能够更方便地使用该软件,获得更好的用户体验。
3.使用户能够观看相关的视频
这个完全是新增功能,以前的版本不能抓取视频资源,虽然我们由于版权原因不能将视频完全下载下来,但是我们可以给用户提供源视频的链接,让用户可以观看。现在很多资源都是以视频的形式存在于互联网上的,我们新增这一功能,能够让这个软件更加实用,更加能够符合增长的用户需求。
4.不仅限于HTML5的网站,能够得到更多的资源(暂定待议)
现在的版本只能够抓取HTML5的网站,但是也有很多使用了javascript或者css的网站中也有很多很实用的资源,我们将本软件更新为支持javascript和css,能够让爬虫抓取到更多的资源,为用户提供更多服务。
5.提高抓取到的结果的质量,增加功能将低质量的资源剔除(暂定待议)
如果只注重抓取到的文件和网站的数量,那么可能会导致抓取到的文件和网站质量不高,反而降低了有用的文件和网站在结果中的成分,让用户体验变差了。我们会用检测关键词是否在其标题中出现,以及出现频率等方法,判断这个文件或网站对于用户的价值,如果这个价值不高那么就将这个文件或网站排除。这样能够让我们抓取到的文件和网站的质量更高。
Competitors(竞争):
网络爬虫是自动获取网页内容的程序,是搜索引擎的重要组成部分。现如今的搜索引擎基本上全都会涉及到爬虫的设计以及优化。而一个搜索引擎的速度也与爬虫的优化程度有着很大的关系。从另一个角度看,不只是搜索引擎,所有与数据挖掘的软件都会涉及到爬虫。因此,爬虫在整个软件行业里面有着很高的地位,而且其应用范围非常广泛。我们这里主要通过搜索引擎中的爬虫分析下竞争。
首先拿现如今最常用的两个搜索引擎:百度和google来说,单纯的从他们爬取信息的角度看,这两者都是业界的龙头,其爬取算法也非常好,可以根据类型分类,从而方便了用户的操作。而且其在整个万维网上进行爬取的速度也是非常快的。而我们的软件虽然说在速度与爬取算法上不是很成熟,但是我们的软件将会以用户的方便进行设计,我们会对爬取下的文件进行匹配度检测从而对其优先度进行排序,这也将大大提升用户的体验质量。我从以下几个方面来说下我们软件的竞争力度。
1.爬取速度与爬取承载,这也是衡量爬虫的标准
我们的软件在速度上相对别的软件并不差,我们通过广度优先的查找顺序查找,这可以提高爬虫的爬取速度,同时我们采用多个队列进行数据处理,这也使得爬虫可以同时处理多组数据,使得承载能力更强。
2.爬取质量与专一性
很多网站的爬虫将给定URL中所有内容爬取下来,这样不仅会对爬取内容的质量造成影响,而且会使得预算速度变慢。我们的爬虫将专一的爬取与计算机有关的数据,这样就使得爬取内容更加符合用户的需求。同时我们将对广告进行处理,这样也能使得爬虫的爬取质量变高。同时我们将会一边爬取一边与关键字进行相符性比对,这样可以大量减少广告以及无关信息。
3.分类储存
用户的下一步操作可能会用到不同类型的数据。而爬虫在爬取过程中将会对数据进行简易的分类。分类以使用户获得更好的用户体验,方便用户在搜索的过程中能够更快的找到自己需要的信息。而这,在程序员中应该会比较受欢迎。
4.界面与实现
用户在拿到爬虫时需要知道爬虫的输出形式与爬取速度等,这需要我们设计一个简单的界面进行实现。我们的界面将用最简单的方式将输出结果呈献给用户,这样会非常直观。
5.创新功能
我们准备在原有的爬虫中添加新的功能。比如在爬取到视频文件时,我们将向用户反馈视频地址。这样就能使得用户可以直接通过地址来观看视频。除此外,我们还计划实现不限定于html5网页的爬取,而是尽量连CSS或者javascript等也可以进行爬取。这样可以更大的方便用户的操作。