新闻爬虫系统的设计与实现毕业论文.docx
- 文档编号:10862971
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:57
- 大小:1.54MB
新闻爬虫系统的设计与实现毕业论文.docx
《新闻爬虫系统的设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《新闻爬虫系统的设计与实现毕业论文.docx(57页珍藏版)》请在冰豆网上搜索。
新闻爬虫系统的设计与实现毕业论文
摘要
随着计算机网络在世界范围的飞速发展,互联网作为最具潜力与活力的媒体已经被公认是继报纸,广播,电视之后的“第四媒体",成为反映社会新闻热点的重要载体。
为了及时了解网络新闻热点,相关机构引入了新闻热点分析系统。
本文设计的新闻爬虫系统是新闻热点分析系统的数据源,负责新闻信息的采集。
本文借助于爬虫领域的相关技术与工具,结合新闻热点分析系统的需求从原理或工作流程上详细论述了爬虫系统中核心模块的具体实现。
本文所描述的新闻爬虫系统其数据来源主要是新浪新闻,首先利用爬虫工具将新闻数据获取到本地数据库中,然后将新闻信息以及新闻分析的结果将在前台网页中进行可视化输出.本文主要进行了以下几个方面的工作:
1)利用Java语言结合HTTPClient开源工具编写了一个针对新浪新闻的可扩展的网络爬虫,该爬虫程序能够按照广度优先的爬行策略对新闻数据(包括图片信息)进行全面的定向抓取以及周期性的增量抓取;
2)采用HTMLParser对获取到的新闻信息进行元数据抽取,将新闻的编号、标题、内容、发布方、发布时间等元数据以及新闻图片等元数据解析出来并存入SQLServer数据库中;
3)前端界面利用开源AJAX框架ExtJS结合Servlet进行实现,兼顾用户交互方式的多样性以及系统的跨浏览器兼容性.
通过使用该新闻爬取系统,用户能够实时的更新新闻信息,及时、全面、准确地掌握新闻热点动态,提高对于重大突发事件的处理能力,对于更及时,全面的了解各地的实时信息具有重要意义。
关键词:
新闻热点,网络爬虫,元数据抽取,可视化
ABSTRACT
WiththerapiddevelopmentofWorldWideWeb(WWW),itiswidely
acceptedthattheinternet,calledtheFourthMedia,willbethemostpotential
andenergeticmediaafternewspaper,radioandtelevisionasanimportantcarrierofthehotsocietynews.Inordertoknowtheinternethotnewsintime,therelatedorganizationsintroducedthehotnewsandanalysissystem。
Thenewsspidersystemisintheinformationcollectionlayerandisthefundamentalpartofhotnewsanalysissystem。
Itisresponsiblefortheinformationcollection.
Inthehelpofrelatedtechnologiesandtoolsandwiththeneedsofthesystemitself,thepaperdiscusstheconcreterealizationofthecodemoduleindetail。
Thedataofthenewsspidersystemcomesfromnewsofsina。
Firstusingwebcrawlertogetdatafromnewstolocaldatabase,finallyvisualizethepublicopinioninformationonthefrontpage.Thisarticlemainlyhascarriedonthefollowingseveralaspectswork:
1)UsingJavaandHTTPClientdevelopedascalablewebcrawlerwhichfocusonDISCUZBBS.Besides,thiscrawlercanconductacomprehensiveorientationoffetchingandperiodicincrementoffetchingfromBBSdata(includingtheBBSpostinformationandallitsreplies)underbreadth-firststrategy。
2)UsingHTMLParsertoextractmeta-datafromtheBBSinformation,parsedandstoredthemeta-data,suchasnumber,title,content,poster,postingtimeandthecorrespondingreplyinaSQLServerdatabase。
3)front—endinterfacecombinedwiththeuseofopensourceAJAXframeworkExtJSServletbeachieved,takingintoaccountthediversityofuserinteractionandsystemcross-browsercompatibility。
Byusingthisnewscrawlingsystem,userscanreal—timenewsandinformationupdated,timely,comprehensiveandaccurategraspofhotnewsdevelopments,improvethehandlingcapacityofmajoremergencies,formoretimelyandcomprehensiveunderstandingofanimportantreal-timeinformationacrosssignificance.
KeyWords:
Hotnews,Webcrawler,Metadataextraction,Visualization
1绪论
本章主要阐明了该课题的研究背景及其研究意义,简要说明了国内外对于爬虫系统的研究现状,并介绍了本论文的主要内容组成以及论文的组织结构。
1。
1开发背景及目的
随着互联网技术的发展与应用的普及,网络作为信息的载体,已经成为社会大众参与社会生活的一种重要信息渠道。
由于互联网是开放的,每个人都可以在网络上发表信息,内容涉及各个方面.小到心情日志,大到国家大事.互联网已成为思想文化信息的集散地,并具有传统媒体无法相比的优势:
便捷性,虚拟性,互动性,多元性。
网络新闻热点通常形成迅速,多是人们对于日常生活中的各种问题发表的各种意见,评论,态度,情绪等,随着事件的发展而变化,是反映社会热点的重要载体之一。
网络爬虫是一种按照一定上网规则,自动的抓取万维网信息的程序或脚本。
网络检索功能起于互联网内容爆炸性发展所带来的对内容检索的需求.搜素引擎不断发展,人们的需求也不断提高,网络信息搜索已经成为人们每天都有进行的内容。
如何使搜索引擎能够时刻满足人们的需求?
最初的检索功能通过索引站的方式实现,从而有了网络机器人.本课题来源于新闻爬虫系统项目的建设,旨在为相关机构提供及时的网络信息服务.这些服务与现有的搜索引擎提供的服务不同,其重要特征主要体现在:
及时性,专用性,人性化。
1、及时性
新闻爬虫系统通过爬虫技术自动爬取新闻信息,定期对相应类型的新闻的地址进行扫描,如若该新闻并未被爬取过则对其进行自动爬取.让系统的工作人员可以静观事态的发展。
2、专用性
新闻爬虫系统的专用性体现在数据采集,数据分析,数据展现等几个环节上.在数据采集方面系统采用手动爬取与增量爬取相结合的方式。
有针对性的采集需要的几个类别的新闻信息,并对信息进行抽取,去噪,结构化处理,为后续专用分析创造条件。
在数据分析与数据展示方面,系统通过对得到的信息进行深入的分析,将分析结果进行多维度的展现。
3、人性化
新闻爬虫系统的人性化主要体现在数据结果的展示上。
用户可以随时查看任意一个时间的新闻分析结果,而且该系统由于是基于多线程的程序完成任务的效率高。
所以不管实在界面上还是在效率上都非常的人性化。
新闻爬虫系统项目建设意义重大。
一方面,新闻爬虫系统提供了大量的分析素材,方便全面的了解大众网络新闻的热点。
另一方面,原来的新闻信息收集工作主要依靠人工完成,工作量巨大,覆盖面小,不仅费时费力而且还不免出现人为疏漏的情况,这种局面亟待通过技术手段提高工作效率.
本文完成的是新闻爬虫系统的设计与实现,该爬虫系统为新闻分析系统提供数据源,完成新闻信息的搜集。
因此可以说爬虫系统是整个分析系统的基础,并且爬虫系统输出结果的好坏直接影响着系统结果的展现。
1。
2国内外相关研究现状
1.2。
1网络爬虫
从搜索对象上来分类,主流的的爬虫技术包括以下两种:
第一种是基于链接分析的搜索。
上世纪九十年代,国外的搜索引擎开发者已经开始以社会网络工作为模型,对万维网进行模拟。
专家们通过社会间人与人的关系网,设计研发出了页面间的超链接关系网络。
同时他们还惊奇的发现,相似度最高的在传统引文方面.这样通过对照就可以分析得出结论,从关系网络的角度入手,就能将互联网上大量的网页进行分类。
早在2002年,欧美地区便出现了这种最原始的基于链接的搜索系统。
第二种是基于内容分析的搜索。
相对于基于链接分析的搜索方式,这是搜索技术的一个突破性进展,他们采取了一种新的思维方式,建立一个针对主题的词库。
当用户在专业领域进行搜索时,可以将词库和爬虫结合起来进行检索.由于搜索角度的转变,这种新的技术逐渐开始被人们所关注。
在上世纪九十年代,FishSearchSystem系统作为首个基于内容分析的搜索系统被开发出来。
后来在1998年和1999年相继出现了SharkSearchSystem和聚焦爬虫(FocusedCrawler)[1]。
时至今日,聚焦爬虫技术取得了长足的发展和进步,国外典型的系统包括CORA、IBMFocusedCrawler等.CORA是由美国卡内基梅隆大学的A.K。
McCallum和M。
Nigam等人于1999年针对计算机科学设计的一个主题型搜索引擎。
CORA采用机械认知的方式,其主要针对的对象是与计算机主题相关联的内容,通过隐性马尔夫的原理对用户需要的内容进行分类。
虽然CORA分析地址和主题的能力还很不足,同时也不具备对网页进行分析的能力,但是这仍然无法抹杀它在自动搜集资源方面取得的重大成就.
S.Chakrabarti在本世纪初提出了IBMFocusedCrawler,这是一种全新的爬行系统。
从现在的技术来看,当时的IBMFocusedCrawler采取了全新双模块系统,即分类器和选择器.分类器主要用于计算相关度,而选择器用来确定主要页面。
S。
Chakrabarti在随后的开发过程中对整个系统进行了进一步的完善,使得该系统在准确度和相关度方面有了大幅度的提升[2].
美国人Diligenti采取建立上下文图的方式设计出了聚焦爬虫,他们将其命名为ContextGraphsFocusedCrawler。
这种通过学习网页引用关系的方法后来被证明效率并不高,但在当时也是重要的创新手段。
系统会利用反向链接服务找到指向该页面的网页,在这两层网页之间建立引用关系,由此建立聚焦爬虫的爬行路径。
通过用户搜索参数的改变,每一个页面都会建立一个对应的引用关系,最后将他们进行合并。
在这个过程中,分类器会确定他们的层级关系,确定之后,页面的链接便会加入队列,由此提取到所有需要进行抓取的网页[3].
对于基于内容分析的搜索,国人也做出了很大贡献。
张福炎教授设计出了IDGS(InternetDataGatherSystem)系统,可以对万维网上的中英文内容进行搜索,大大的填补了中文方面的空白.IDGS能够在万维网上对信息进行自动查询,采用向量空间模型技术对内容进行检索,同时利用权重评价技术来进行统计.在该系统中由模式匹配模块计算相关度,采取漫游模型来进行后期的持续检索。
该系统的最大优点是准确度高,其代价是牺牲了覆盖度,搜索的深度非常有限[4]。
1.3论文主要内容和章节安排
本文对于新闻爬虫系统的设计与实现过程作出了详细介绍,该系统的数据来源主要是网络网页新闻。
本系统的运行流程大致如下:
首先利用爬虫工具将新闻数据获取到本地数据库中,之后对其进行数据分析,最后将新闻内容信息以及分析结果在前台网页中进行可视化输出.
第一章为绪论,主要阐明了该课题的研究背景及其研究意义,简要说明了国内外对于爬虫系统的研究现状,并介绍了本论文的主要内容组成以及论文的组织结构。
第二章为系统开发知识准备,简要介绍了进行本次新闻爬虫系统开发所需要的相关理论和技术,主要包括爬虫技术的知识理论和J2EE技术、SQLServer2005数据库管理系统以及ExtJS框架等相关知识,并对系统开发过程中用到的一些关键开源工具做出了简要说明。
第三章对本系统进行了需求分析,首先从技术可行性、操作可行性和经济可行性三个方面对系统可行性进行了评估,随后对系统的用户对象和用户用况从管理员用户和普通用户两个角度进行了详细的分析,并分别总结出了相应的功能需求,最后对系统的性能需求进行了简要分析。
第四章对本系统进行了总体设计,包括数据库结构的总体设计以及系统功能模块的总体设计,并对数据获取功能模块的子模块以及数据可视化功能模块的功能结构做出了明确的划分,为系统详细设计与实现阶段的工作备好条件.
第五章对本系统的详细设计和实现过程做出了说明,进行了功能模块的详细设计并完成了系统的开发实现工作,对于数据获取模块以及数据可视化模块进行了详细的设计实现和功能说明。
第六章进行了系统测试和发布工作,首先从理论上对软件测试的目标和方法进行了简要介绍,之后设计了多个测试用例对系统的相关功能模块进行了详细的测试并对测试结果进行了分析,最后将本系统通过TOMCAT部署到了PC服务器上,完成了系统发布的过程。
第七章对于本次系统设计开发过程进行了归纳和总结,阐述了本次系统开发的意义并分析了下一步需要进行的工作,最后对网络舆情分析系统的发展方向进行了展望.
2系统开发知识准备
本章简要介绍了进行本次新闻爬虫系统开发所需要的相关理论和技术,这些关键技术的学习和掌握为接下来的系统分析及设计实现提供了坚实的理论基础。
2.1网络爬虫的相关知识与理论
2.1.1网络爬虫的定义
网络爬虫是一个自动提取网页的程序,它为搜索引擎从WEB上下载网页,是搜索引擎的重要组成部分.通用网络爬虫从一个或几个初始网页的URL开始,获得初始网页上的URL列表;在抓取网页的过程中不断从当前网页上抽取新的URL放入到待爬行队列,直到满足系统的停止条件.
2.1。
2页面搜索策略介绍
网页的爬取策略可分为深度优先,广度优先和最佳优先三种。
深度优先在很多时候会导致爬虫的陷入问题,目前常见的是广度优先和最佳优先方法。
广度优先策略是指在爬取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。
在目前为覆盖尽可能多的网页,一般使用广度优先搜索算法。
也有很多研究将广度优先算法应用于聚焦爬虫上。
其基本思想是认为与初始URL在一定链接距离内的网页具有主题相关性的概率很大.
最佳优先策略是按照一定的网页分析算法,预测候选URL与目标网页的相似度,或与主题的相关性,并选评价最好的一个或几个URL进行抓取。
它只访问经过网页任意算法预测为“有用”的网页。
存在的一个问题是,在爬虫抓取路径上的很多相关网页可能被忽略。
因为最佳优先策略是一种局部最优搜索算法。
因此需要在应用中对最佳优先策略进行改进,以跳出局部最优点。
2.2J2EE技术简介
J2EE指的是Java2平台企业版(Java2Platform,EnterpriseEdition)。
J2EE的核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共同的标准及规格,让各种依循J2EE架构的不同平台之间存在良好的兼容性,一方面解决了过去企业后端使用的信息产品彼此之间无法兼容的问题,另一方面使得企业摆脱了内部和外部难以互通的窘境。
J2EE组件和“标准的”Java类的不同点在于:
它被装配在一个J2EE应用中,具有固定的格式并遵守J2EE规范,由J2EE服务器对其进行管理.J2EE规范是这样定义J2EE组件的:
客户端应用程序和Applet是运行在客户端的组件;JavaServlet和JavaServerPages(JSP)是运行在服务器端的Web组件;EnterpriseJavaBean(EJB)是运行在服务器端的业务组件。
J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。
通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成的强有力支持,极大地提高了系统的运行效率和安全性。
J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。
事实上,SUN设计J2EE的初衷正是为了解决两层模式(Client/Server)的弊端。
传统的客户端往往承担了太多的功能,导致客户端比较臃肿,升级很不方便.而J2EE中使用的多层软件模型将原来简单的模型切成几层解耦的独立功能层,每一层完成特定的任务,方便升级系统并更改应用的逻辑[5]。
典型的J2EE应用体系结构如图2-1所示:
图2-1J2EE体系结构图
总体来说,使用J2EE技术开发Web事务系统有以下优点:
第一,开发高效,J2EE有完善的开源社区支持,像Spring,Struts这些框架可以大大缩短开发周期;第二,支持不同的操作系统环境,因为Java天生具有“一次编译,随处运行”的特点,基于J2EE开发的应用程序不依赖特定的操作系统、硬件等,也就具有了开发一次就可以在各个平台部署的特点;第三,稳定的高可用性,得益于从Java继承而来的跨平台特性,J2EE系统部署到可靠的操作环境中,一些对系统鲁棒性要求很高的大型商务系统可以选择比Windows更为健壮的Linux操作系统,这是更为理想的选择。
2.3SQLServer2005简介
MicrosoftSQLServer2005是一个全面的数据库平台,使用集成的商业智能工具提供了企业级的数据管理方式。
MicrosoftSQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使得用户可以构建和管理用于业务的高可用和高性能的数据应用程序。
SQLServer是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase、Ashton—Tate三家公司共同开发的,并于1988年推出了第一个在OS/2版本上运行的SQLServer系统。
1992年Sybase和Microsoft这两家公司将SQLServer移植到了WindowsNT操作系统上,后来Microsoft致力于WindowsNT平台的SQLServer的开发,而Sybase则专注于SQLServer在UNIX上的应用[6]。
近年来在MicrosoftSQLServer的发展历程中不断更新版本:
1996年发布的SQLServer6。
5版本,该版本具备了市场所需的速度快、功能强、易使用和价格低等有点;1998年推出了SQLServer7。
0版本,该版本再一次对核心数据库引擎进行了重大改写,在操作上更加简单、易用,因此获得了良好的声誉;2000年,发布了SQLServer2000版本,该版本在可扩缩性和可靠性上有了很大的改进,成为企业级数据库市场中重要的一员;2005年,发布了SQLServer2005版本,该版本扩展了SQLServer2000的性能,如在可靠性、可用性、可编程性和易用性等方面做出了重大改进。
SQLServer2005引入了。
NETFramework,允许构建。
NETSQLServer专有对象,从而使SQLServer数据库具有灵活的功能。
SQLServer2005的常见版本包括如下四种:
1)个人版(PersonalEdition):
用于单机系统或客户机;
2)标准版(StandardEdition):
用于小型的工作组或部门;
3)企业版(EnterpriseEdition):
支持所有的SQLServer2005特性,可作为大型Web站点、企业OLTP(联机事务处理)以及数据仓库系统等的产品数据库服务器;
4)开发者版(DeveloperEdition):
用于程序员开发应用程序,这些程序需要SQLServer2005作为数据库存储设备[7]。
2。
4ExtJS简介
ExtJS是一个JavaScript库,功能强大,界面美观,可以使用AJAX,DHTML,DOM等技术来开发网络应用程序。
ExtJS可以用来开发富互联网应用(RIA:
RichInternetApplications),主要用于创建前端用户界面,是一个与后台技术无关的前端AJAX框架。
因此,可以把ExtJS用在。
NET、Java以及PHP等多种开发语言中。
ExtJS最开始基于YUI技术,由开发人员JackSlocum开发,通过参考JavaSWING等机制来组织可视化组件,从UI界面上CSS样式的应用,到数据解析过程中的异常处理,都可算是一款不可多得的JavaScript客户端技术的精品.
ExtJS的组件结构如图2-3所示:
图2-3ExtJS组件结构图
ExtJS初期仅是对Yahoo!
UI的对话框扩展,后来逐渐有了自己的特色,深受技术研发人员的喜爱。
发展至今,ExtJS除YUI外还支持包括jQuery、Prototype等多种JS底层库,可以让开发人员自由进行选择[8]。
该框架完全基于纯HTML/CSS+JS技术,提供丰富的跨浏览器UI组件,灵活采用JSON/XML数据源开发,使得服务端表示层的负荷真正得以减轻。
2.5开源工具简介
2。
4。
1HTTPClient
HTTPClient是ApacheJakartaCommon下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包.
HTTP协议可能是现在Internet上使用得最多、最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源。
虽然在JDK的包中已经提供了访问HTTP协议的基本功能,但是对于大部分应用程序来说,JDK库本身提供的功能还不够丰富和灵活。
HTTPClient已经应用在很多大型的项目中,比如ApacheJakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HTTPClient。
HTTPClient所提供的主要功能包括:
1)实现了所有HTTP的方法(GET,POST,PUT,HEAD等);
2)支持自动转向;
3)支持HTTPS协议;
4)支持代理服务器。
2.4。
2HTMLParser
HTMLParser是一个利用纯Java语言编写的进行HTML解析的库,它不依赖于其它的Java库文件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新闻 爬虫 系统 设计 实现 毕业论文
![提示](https://static.bdocx.com/images/bang_tan.gif)