爬虫开题报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
'. 爬虫程序
一、国内外发展形势
随着数据科学的迅速发展,诸如机器学习,人工智能等新兴技术极大地方便了人们的生活。来越多的应用涉及到大数据,而这些大数据的属性、包括数量、速度、多样性等等都是呈现了大数据不断增长的复杂性。从而,大数据的获取和分析在大数据领域就显得尤为重要,可以说是决定最终信息是否有价值的决定性因素。
万维网上有着无数的网页,包含着海量的信息,无孔不入、森罗万象。但很多时候,无论出于数据分析或产品需求,我们需要从某些网站,提取出我们感兴趣、有价值的内容,但是纵然是进化到21世纪的人类,依然只有两只手,一双眼,不可能去每一个网页去点去看,然后再复制粘贴。所以我们需要一种能自动获取网页内容并可以按照指定规则提取相应内容的程序,这就是爬虫。爬虫本身不区分到底是运行在
windows还是Linux,又或是OSX,但从业务角度讲,我们把运行在服务端(后台)的,称之为后台爬虫。而现在,几乎所有的爬虫都是后台爬虫。
而爬虫数据获取的基础,经过这么多年的发展,除了面对surfaceweb(即表层Web,由网页沟通,网页之间通过超链接关联)的常用爬虫,各种面对垂直领域和特定主题的爬虫(focusedcrawler)成为热点。
二、项目解决了什么问题及创新点
本项目解决了数据科学所依赖的数据来源的问题,帮助数据科学工作者获取更多更有价值的数据。同时,本项目聚焦于新浪微博、拉勾网、房天下等各项极有价值的数据,利用现有技术在项目中实现了免登陆、多目标爬取数据,同时针对爬取的数据进行了初步的筛选过滤,去掉多余信息,除了可以节省本地空间之外还方便数据科学工作者对数据进行二次清洗、提炼,从而得到更有价值的信息。本项目还针对爬虫的作用机制以及设计模式进行了优化,采用多线程的技术可以明显提高I/O操作的速度,同时因为采用了合适的设计模式,可以及时地将内存中的数据导入到数据库中,极大地减少了内存资源的占用,使爬虫程序在运行期间,尽可能少地占用计算机资源。三、技术路线及执行计划
理论上来说,任何支持网络通信的语言都是可以写爬虫的,爬虫本身虽然语言关系不大,但是,总有相对顺手、简单的。目前来说,大多数爬虫是用后台脚本类语言写的,其中python无疑是用的最多最广的,并且页诞生了很多优秀的库和框架,如scrapy、BeautifulSoup 、pyquery、Mechanize等。但是一般来说,搜索引擎的爬虫对爬虫的效率要求更高,会选用C#、C++、Java、Go(适合高并发)。本项目将采用Python 作为爬虫实现语言对爬虫进行编写,同时辅以相关的功能包以及C#编写的图形界面。
爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;如果有网站不愿本站数据流出,则会针对爬虫特性进行识别,将爬虫拒之门外;所以一个完整的爬虫一般会包含如下几个模块:网络请求模块、爬取流程控制模块、内容分析提取模块、反爬虫对策模块(如果需要)。同时辅以C#编写的图形界面,让爬虫变得更加易用,对用户更加友好。