【《基于Python的智能新闻爬取处理系统设计》9100字(论文)】_第1页
【《基于Python的智能新闻爬取处理系统设计》9100字(论文)】_第2页
【《基于Python的智能新闻爬取处理系统设计》9100字(论文)】_第3页
【《基于Python的智能新闻爬取处理系统设计》9100字(论文)】_第4页
【《基于Python的智能新闻爬取处理系统设计》9100字(论文)】_第5页
已阅读5页,还剩15页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Python的智能新闻爬取处理系统设计目录729摘要 摘要:在社会快速进步,信息传递,其中最重要的传输介质就是新闻,他在社会发展中起了重要的作用,社会上各个阶层的人们每天都在关注新闻的变化,同时希望能利用新闻传递获取这个社会的完整实事新政,随着科学技术快速发展,时代更新加快,每天的信息量爆增,人们生活节奏加快,如何利用最少的时间,可以快速获取全球新闻信息,精简却又少而实在的新闻,以往人们都沉浸在网络或报纸冗余繁杂的新闻数据,想要阅读全球关键信息可能需要翻遍多个频道,这无形就给新闻阅读带来难度。如何利用一新闻爬取系统并通过数据清洗过滤,可以提高人们阅读新闻的效率,提高阅读时效,本文利用新闻爬取技术,在搜集完数据之后,需应用数据时,可通过数据分类划分清洗算法,最后将数据保存至Mysql数据库中即电脑硬盘做为最后存储介质,为让用户可充分的进行数据分析及浏览,采用python开发语言及Django开发框架,帮助用户有效的分析新闻,可以快速理解当前全新新闻。关键词:新闻智能爬取新闻浏览系统设计系统测试绪论:随着大数据到来,新闻是大数据中活生生的例子,如何利用大数据技术整合新闻数据,以解决用户在浏览新闻时,可以不用再切换频道就可快速浏览新闻,通过爬虫技术,帮用户自动从各个新闻网站获取对应的数据,并保存到数据,最后用户只要在系统上搜索新闻关键字,或通过新闻分类进行新闻浏览。以此提高用户阅读新闻时效,提高新闻传递效率。1简介1.1选题的背景随着大数据浪潮来袭,如今电商、互联网、金融等多领域都开始通过大数据融合各个项目,这些领域正在不断的积累增长经验,目前各行业大数据都在呈几何式增长。其中全球通信网数量每天都有数万个T的字节数据在进行传输。而全球互联网搜索引擎每天可以处理几万TB的数据。数据量不断加码,用户深度使用这些数据,慢慢人们已经发现新闻的价值有潜在的给商业带来的重要商机,而目前大家面临的还是冰冷的新闻数据,错宗复杂的大数据,让人头麻的数据,还无法快速清晰定位数据的有效性,更别提大数据给社会人士带商机,如果能利用当前各个网站新闻,结合信息化技术,让全球各大网站上的新闻可以进入自己服务器,把新闻装进我们的口袋,让用户只要通过一个站点就可以阅读全球新闻。1.2选题的意义根据网上知名网友数据研究表明,网友对外面各种信息获取都热爱于用新闻方式来获取,相比阅读报纸,网络新闻阅读感官获取所得的内容比较让人容易接受,同时更利于人们快速理解接收信息,只要拥有一套新闻处理数据系统,这样就带来很多新闻数据不止来自于网站管理员,还可以来自于每一个,。他们不仅从网站上获取新闻数据同时,还会不定时的向网站输入新数据,为了让人们可以快速从繁杂的新闻数据中直观的获取到用户指定的关键数据,本次通过爬虫技术向大家展示最新数据。互联的普及,数据增长如果还是像早期那样,任何数据都需要人们手动的获取,手动纪录并分析计算结果,那将会导致数据分析变的十分困难。因此急需开发一套通过智能新闻系统,通过技术分析大海量数据中获取精准数据。阅读全球新闻最好的工具就是利用爬取技术通过数据分析,这样可以直观、灵活、清晰的了解那些隐藏在数据背后的信息。1.3Python简介Python加入了特殊的字符等一系列特殊的语法,简化了用户的操作。并且,它是一个很好的脚本语言,在角色的背景和要求的项目上,也是特别厉害的。HTML代码扔到Python页面中的Python代码一起组合而成了一个JSP页面,可在IE等浏览器上访问使用[1]。Python之所以是最受欢迎的开发语言,最重要的原因是PYTHON平台运行于各种环境下稳定。Python在微软的windows、Linux,Unix等相关的平台上运行都非常稳定。最开始人们对Python的认识只是停留在他可以用来开发芯片上,21世纪后由于互联网的快速发展,人们对WEB的推崇,使得Python被推到顶峰,特别是Pythonweb开发是目前业内使用最多也是反响最好的,当然Python还是开源的全世界的程序员都可以修改Python的代码,并且SUN公司一直对JDK不断的更新,使用是大多的web开发都向Python靠拢并且很多web新技术也得SUN的技术支持,Python去除类似C语言多继承这种不易于让新人学习与消化的技术,当然它保留了面向对象里的所有思想没有放弃继承等等相关思想[2]。1.4MySQL数据库简介MySQL有一个开源社区,也是广大开发从事者发起自主研发的数据库系统,他不同于甲骨文公司的ORACLE、微软sqlserver,以上两者都是商业性极强的数据库系统,而在数据库行业内处于重要的地位一直都是mysql,不亚于以上两款数据,同时又是开源免费,因此受到广大开发者的推崇[3]。myql有几个极大的优点,轻便、可靠又安全性,同时安装又方便,安装时支持安装包也支持绿色版多种安装方式,纵观商用的项目不止是毕业设计这种级别的项目,很多都采用mysql,公司级的集团级,特别是互联网企业的项目都是采用mysql,他目前所集成的有关数据库功能完全可以符合T级别的海量数据处理[4]。总结就是Mysql稳定、好用,易用,高效这几个原则受广大开发者追捧。1.5B/S结构浏览器与服务器配合的结构方式,我们统称为BS结构[5],它随便互联网的兴起,毫无意外的在CS发展大潮中,脱颖而出,在以前大家用软件的时候还安装客户端,然后再连上服务端进行二者通信,最为明显的就是我们目前在用的QQ这种软件。而浏览器服务器的结构完全打破这种需要安装软件才可与服务器通信的方式,目前受大家推崇的瘦客户端大军下,其中的一个方式就是浏览器服务器的方式,用户只要拥有浏览器即使用这次开发的新闻数据获取分析系统,新闻网站数据获取系统的所有处理逻辑都在服务器上进行切割,建立在这种浏览器模式下的新闻系统就可以在服务器上建立好大型的新闻数据,新闻指票、新闻等用户只要通过浏览器就可访问他权限范围内的新闻数据,打破距离上的限制,同时服务端可实现自动新闻新闻捉取,发布新闻数据,省略了现场的管理员进行,新闻系统u新闻发布相结合的系统,全程都是自动化无需任何的人为参与,这些都是建立在BS的模式之上[6]。从技术上来说,他超越了十年的前的技术客户端、服务器的模式,本次开发设计的系统采用最为经典的三层框架。在代码层面分为逻辑层(BBL),数据库层(DAL),及最后一个用户接受界面层[7]。所以大家都说BS模式结构易用、安全。最后用户只要在计算机要安装浏览器就可以直接进入新闻数据浏览。这就是BS上极让人接受的方式了。1.6Scrapy框架Scrapy是一个基于python语言的爬虫框架。它常常应用于爬虫程序获取网布上的数据。从而利用网页数据提取技术,把数据存入数据库表中。Scrapy底层采用的是sokcet通信的网络架构。Scrapy看样子感觉技术可以,保证网络在客户请求数据中可以快速响应。同时利用中间表,自己开发的组件从而快速利用组件,无须每次用户志在千里帮忙。Scrapy在调度的过程中,相较于下载器,管道器其中下载器就是用下载中间件等,同时支持多线程拆解过程,数据化查询。在开始研究前,我们会根据业务实现一套基于分布式架构的爬取系统。2系统分析2.1系统设计原则用户是通过智能新闻爬取处理系统对外发布消息的,因此本文系统设计与新闻管理工作的特点有很大的联系,因此我们有以下几个原则:(1)目的要明确首先,我们需确定自己设计系统的目的和用意、开发类型以及系统功能,如此才能够开发出一个好的智能新闻爬取处理系统[8]。(2)可扩展性较强当我们设计开发完智能新闻爬取处理系统后,在使用过程中,主观条件和客观条件通常会有所不同,而且在使用时我们还会发现该系统有不完善的地方。为使系统功能进一步提高,我们需要维护并优化系统,所以我们在进行系统的开发时,系统的可扩展性需要被优先考虑,采用一些措施,以此使得系统的可扩展性得以提高。(3)实用性和经济性在智能新闻爬取处理系统设计开发过程中,我们在尽可能的使成本最小化的同时,让系统更加实用,而且能使操作更简单,具有更高的使用效率,更强的灵活性。2.2系统需求分析作为软件开发,每次项目任务,都需要用户先确认好一个软件的适应人群,这软件配置完就能解决用户在此系统上可以实现既定好的目标[9]。以此扩展成需求,每项业务数据流程确认就是需求分析。在开发系统时,需求分析起着关键作用,只有很好的完成系统需求分析之后,才可以开发出功能完备的系统。2.2.1系统的功能需求分析在研究了文献并且调研了相关用户需求之后,本文对智能新闻爬取处理系统的功能需求做出如下总结:(1)本系统首先要具有新闻管理爬取这一功能,即发布新闻数据智能获取。(2)用户级别不同则其权限不同:管理员不仅可以对新闻进行分类、添加、修改及新闻数据处理。(3)普通用户能够根据新闻分类进行在线的新闻浏览。综上所述,可以把智能新闻爬取处理系统拆分称两个模块:前台页面模块、后台新闻智能爬取模块。2.2.2系统的性能需求分析基于功能上的需求,本文提出了性能上智能新闻爬取处理系统需要达到的目标,性能要求如下:(1)界面友好。系统各个模块的界面布局和背景要美观,不能给用户曹乱无章的感觉。(2)操作简易。智能新闻爬取处理系统所面向的用户种类繁多,不需要登录即可访问系统。用户年龄段、文化程度以及所掌握的计算机知识均不一样。因此,设计的智能新闻爬取处理系统要操作简单,界面友好用户无需培训可一眼看到系统如何操作,上手快,让用户在没有任何培训的前提下可以短时间内熟练使用系统,完成新闻浏览及爬取等业务。(3)安全性高。用户通过智能新闻爬取处理系统对外宣传,因此要格外重视系统设计的安全性。当其受到不法分子的入侵时,系统将会被破坏,或者会有一些不良信息出现,这样将尤其会对未成年用户产生不良影响。因此我们需要对该系统采取加密用户信息、控制用户权限以及备份数据库等方法来确保其安全性。(4)稳定性高,易维护。由于智能新闻爬取处理系统在中心服务器上运行,并且是对公众服务的,所以必须爆露在公网上,因此智能新闻爬取处理系统面对的是众多的互联网攻击,其必须具被很高的稳定性和可用性,如果系统出现故障,可以自动切换服务器,零等待体验。2.3用例图用例图的主要元素是用例和参与者。该智能新闻爬取处理系统的参与者主要有:管理员及普通用户图2-1爬虫系统管理员的用例图图2-2普通用户用例图2.4系统的可行性分析在开发系统前我们往往需要评价其可行性程度,从而评测系统开发和应用,主要包括技术可行性、经济可行性、操作可行性等[7],这被称为系统的可行性分析。 (1)技术可行性分析 本系统是通过计算机网络以及数据库的相关技术来对其每个阶段实现计算机的管控的,以提高工作的效率和工作的质量。 考虑到系统的扩展性,本系统使用Python语言开发,后台数据库使用的是MySQL,以增强系统的可扩展性。python可运行于linux,windows跨平台,同时本次设计的爬取新闻处理是采用多线程,分布式,日常运维系统无需要考虑操作系统平台。MySQL数据库对大众开源并且免费,适合用在新闻千万级数据表环境。 系统开发步骤是以软件工程的项目开发模型为根据,与通用的应用开发平台相结合,进行系统的配置,并且可以参考许多成熟的系统,从而该课题在开发技术上是可行的。 (2)操作可行性分析 本系统以B/S模式为基础,对于客户端来说,用户只需要通过Web浏览器便可访问该系统,有些用户只掌握了部分计算机知识,这类用户也均可通过简易的操作界面来掌握其使用的方法。并且友好简明的交互界面友可以提高智能新闻爬取处理系统的可操作性。 (3)经济可行性分析 以新闻系统的实际需求为依据进行系统的开发,除了能使用户的新闻管理水平得以提高以外,还能够提高其新闻采集和编辑的效率,使新闻流程得以优化,使新闻更具时效性。对于该系统而言,系统运行方无需花费很大的代价即可确保系统的正常运行。服务器可以安装免费的小红帽版本linux,Mysql开源免费,技术也不用购买相应开发工具,所用的工具都是免费无需授权,无需花费过多的人力和物力即可运行和维护,未来保证系统良好运行也只要一般计算机从业人员即可,因此在经济上也是可行的。3系统总体设计3.1系统体系结构设计作为系统设计中的重要工作,管理信息系统结构设计的好坏,将会对系统的运行效率、安全性以及可维护性等有着直接的影响。文件服务器模式(File/Server)、C/S模式(Client/Server,客户机/服务器)和B/S模式(Browser/Server,Web浏览器/服务器)常被用做管理信息系统的体系结构[10]。由于本系统的用户数量过多,并且因为地域和即时性对数据库信息的更新和维护的制约,系统一般使用B/S结构来实现,以便于操作更加便捷,并且对服务器端的数据库有较小的访问量。本文用到的B/S结构,只需使用浏览器即可实现原来需要用复杂的专用软件才可以实现的功能,简易并且节约开发成本,使系统的维护和升级的成本得以降低[11]。采用B/S结构的智能新闻爬取处理系统可以轻松地发布新闻信息,而用户不需要特意安装专门的客户端软件,直接访问浏览器便可查阅新闻。3.2系统功能模块智能新闻爬取处理系统具有多个模块。该系统的用户分为三种:未注册的匿名用户,注册过的和管理员。所有用户都能浏览新闻。管理员登录后可以新闻爬取、分类新闻,新闻管理、新闻浏览。系统功能模块如图3-1所示。图3-1系统功能模3.3数据库设计本系统的大部分新闻信息以及用户相关信息均存储在数据库中,又因为新闻信息数据的更新速度很快,因此数据库中的数据会日益增长,最终随着系统应用时间的增加一定会产生大量数据。除此以外,基于功能的需求,我们需要对数据库系统进行合理的设计,包括数据的处理速度和能力、性能和安全上的稳定和可靠等。因此,系统设计中的一个重点就是数据库的设计。本智能新闻爬取处理系统一共用到四个表:新闻信息表(news),用户信息表(news_users),分类信息表(topic)。这四个表的设计分别如下表3-1新闻信息表(news)字段名称字段类型字段长度字段说明NIDint11新闻编号NTIDint11所属分类号NTITLEvarchar200新闻标题NAUTHORvarchar50作者NCREATEDATEdatetime0发布时间NCONTENTmediumtext0新闻内容表3-2用户信息表(news_users)字段名称字段类型字段长度字段说明USIDint11用户编号UNAMEvarchar20用户名UPWDvarchar20用户密码表3-3分类信息表(topic)字段名称字段类型字段长度字段说明TIDint11主题编号TNAMEvarchar50主题名3.4实体关系图本智能新闻爬取处理系统有四个实体,分别为用户、新闻分类、新闻。用户的属性:登录名,密码。新闻的属性:主题,标题,作者,发布时间,内容。各实体之间的关系如图3-2所示。图3-2实体图3.5过程设计完成概要设计的相关工作之后,便开始进行详细设计,也就是过程设计阶段。在这个阶段要解决智能新闻爬取处理系统各个模块的实现算法,并使用过程描述工具(程序流程图、N-S图、PAD图、决策树等)精确地描述这些算法。对于比较简单的算法,可以采用自然语言来描述。但是对于此智能新闻爬取处理系统,有一些算法比较复杂,使用自然语言描述就不太合适。一方面自然语言在语法上和语义上往往具有歧义性,常常要依赖上下文才能把问题描述清楚;另一方面,自然语言本身具有顺序性,不适合描述具有很多分支和循环的算法。因此本智能新闻爬取处理系统使用程序流程图来描述一些比较复杂的算法。新闻爬取流程图如图3-3所示:图3-3新闻爬取流程图3.6类图模型的静态结构,又被称作静态模型,其可以在UML中用类图表示。类图的功能是显示类、类的内部结构以及与其他类的联系。类元之间的联系就是通常所指的联系,在进行类的建模时,能够使用关联、聚合和泛化关系。在智能新闻爬取处理系统中,涉及到的主要类有CommentsServlet,ExitServlet,LoginServlet,NewsServlet,ShowInfoServlet,TopicServlet,UserServlrt;CommentsServiceImpl,NewsServiceImpl,TopicServiceImpl,UserServiceImpl;CommentsDaoImpl,NewsDaoImpl,TopicDaoImpl,UserDaoImpl;DButil等智能新闻爬取处理系统的核心类图如图3-6所示。智能新闻爬取处理系统的核心类图如图3-4所示。图3-4类图其中,NewsServlet,NewsServiceImpl,NewsDaoImpl,这三个类是控制新闻管理的。实现的功能有浏览新闻、添加新闻、按标题查找新闻、编辑新闻等。4系统实现4.1新闻首页用户进入本智能新闻爬取处理系统后,首先看到的是新闻首页。新闻首页可以体现整体爬下来的所有数据,并分类展示如图4-1所示。图4-1首页4.2各类新闻浏览模块本模块显示了新闻的种类、标题列表以及发布时间,此外还有图片新闻等。新闻浏览模块如图4-2所示。图4-2各类新闻浏览模块用户点击新闻标题,会跳转到显示新闻具体内容的阅读页面,在此页面可以看到新闻的标题、发布时间、作者以及新闻的具体内容用户看完新闻后可以点击页面左上方的“返回首页”或者点击网站的Logo图片“新闻中国有态度的新闻门户”返回新闻首页,继续查看其他新闻。图4-3新闻阅读页面4.3新闻数据爬取4.3.1数据清洗数据清洗主要是在爬取的数据之后,因为脏数据要进行清洗,清洗就是提取有效数据,而如果清洗就是提取脏数据,保存有效数据,在未来使用数据之前进行数据预处理或进入持久比时,根据清洗规划进行提取,保证数据在进入持久层已经是准确无误的数据,数据清洗包括[12]:1、缺失值检测,从历史数据爬取系统逻辑来研究,因为缺失值导至数据无准无误自动补值处理2、数据去重,在爬取完成的数据由于数据样本重复,重复的数值会影响数据挖掘结果及分析的精度,因此在利用数据分析前需要进行数据去重是数据清洗过程必不可少的步骤。4.3.2数据转换数据转换就是将异构数据转换成有效数据,同时规范化数据,转换数据主要是利于应用分析,数据规范化就是消除由于结构差异导致分析结果误差等原因[13]。同时根据一定比例压缩数据,提高数据利用率。4.3.3数据加载数据加载是爬取的最后一步,他保证数据通过持久化至不同数据库中或文件中,数据加载也是为在数据转换保证可统一保存致一致的数据表,不会因为不同的数据模块,导致无法加载到表中,数据持久化之后,就可保证数据后序可视化分析时高效,数据加载代码实现[14]。5系统的测试与评价5.1系统测试首先运行整个程序进入到网站首页,在网站首页显示出用户登录、新闻分类、新闻标题、新闻图片等模块,达到了预期效果。首页中的各项均是用超链接实现的,依次点击相应的功能按键和超链接,查看功能是否能够按照设计时的构想实现,例如,在点击“注册”,出现用户注册界面,填写用户的登录名、密码和确认密码,再点击“注册”,进入注册成功页面等等。以该思想为依据,对每个功能和超链接进行点击,来检测该功能实现与否。表5-1系统测试测试项目功能描述操作步骤/输入数据预期结果测试结果新闻浏览查看新闻的具体内容进入主界面,点击新闻标题跳转到新闻阅读页面,能看到新闻的详细内容。成功新闻分类将新闻按照分类分页显示点击新闻主题新闻按照对应的分类分页显示成功管理员登录管理员登录系统进入主界面,登录名输入“admin”,密码输入“admin”,点击登录。登录成功,跳转到后台管理页面,返回新闻首页后在左上角显示管理员名称。成功查看个人信息查看已登录用户的个人信息进入主界面,登录名输入“aaa”,密码输入“aaaaaa”,点击登录,跳转到个人主页后点击“查看个人信息”。能看到个人信息:登录名为aaa,密码为aaaaaa。成功查看用户信息查看注册用户的登录名和密码用管理员身份登录系统后选择“用户管理”。能查看到注册用户的登录名和密码。成功删除用户删除一个注册过的用户用管理员身份登录系统后选择用户管理,点击想要删除的用户信息后的“删除”,在弹出的确认删除对话框里点“确定”。然后退出管理员,用刚删除的那个用户的登录名和密码登陆系统。成功删除一条用户信息,退出管理员后,用刚删除的用户的信息登录系统,提示请先注册。成功通过循环迭代“测试、修改、测试”的过程,使该系统能够达到设计的要求,达到预期的各项性能目标[15]。5.2系统评价通过以上各步工作,该智能新闻爬取处理系统基本符合设计要求,在这里对本系统做一个简单的评价。本系统具有如下特点:(1)安全性和可移植性较好在任何Windows系统平台中均可运行。系统以权限为依据来做相应的处理,以此来保护数据的安全,同时为管理员数据的维护提供了方便。(2)容错性能较好本系统已在测试阶段进行了很多实例测试,并发现和改正了很多错误,从而具有很强的稳定性与容错性。结束语课题结合新闻管理工作的实际需求,在B/S架构中以MySQL数据库技术和Python语言作为主要工具,最终完成了智能新闻爬取处理系统。其功能基本符合新闻管理的需求,并提供部分系统维护功能,使用户方便进行新闻浏览和管理员对数据进行添加、修改和删除。通过对智能新闻爬取处理系统的设计和实现,使我对新闻工作有了更全面的理解,同时也将学习到的软件工程的相关知识运用到实践中,学习并运用Java完成了本次的设计任务。虽然

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论