基于Python的手机舆情系统.doc_第1页
基于Python的手机舆情系统.doc_第2页
基于Python的手机舆情系统.doc_第3页
基于Python的手机舆情系统.doc_第4页
基于Python的手机舆情系统.doc_第5页
免费预览已结束,剩余37页可下载查看

下载本文档

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

文档简介

基于Python的手机舆情系统设计与实现摘要系统主要就是针对手机行业文章进行抓取并分析统计,根据用户定义关键词在数据库中全文搜索匹配相应文章,然后给用户进行展示,为用户提供便利。系统利用Python urllib对权威手机资讯网站进行网页抓取,然后用Python re包和正则表达式在网页中匹配到相关数据,再用Python w3lib.html去掉页面中臃肿的html标签。进行网页提纯,并利用MySQL进行存储。系统后台运用Python flask进行开发实现,前端则运用html、css、javascript、jquery进行开发并实现简单的页面交互。利用Python和Sublim工具对系统的页面和服务器进程编程和部署,系统主要是服务器端入手建立基本的前后调一体化流程。系统主要有自定义频道、自定义栏目(同时设置栏目关键词)、查看更多等功能,用户在栏目中查看根据关键词匹配到的文章列表。关键词:舆情手机资讯The Design And Implementation Of Mobile Public Opinion System Based On PythonAbstractSystem is mainly aimed at the mobile phone industry articles to grab and analysis of statistics, based on user-defined keywords full-text search matching corresponding articles in the database, and then to users to display, provide convenience for the user.System USES Python urllib cell phone information to web sites for authority to grab, and then use Python re package and regular expression matching to the relevant data in the web page, then use Python w3lib. The bloated HTML tags in HTML to remove page for web data refinement, and deposited in the MySQL database for storage.Systems use Python flask framework for development background, front end uses HTML, CSS, javascript, jquery interaction to develop and implement a simple page.Using Python and Sublim tools page on the system and the server process programming and deployment, before and after the system is mainly the server side of the basic integration process.Channel system mainly include custom, custom columns (at the same time set up keywords), read more, and other functions, users in the section view based on keyword matching to the list of articles.Key words: Public opinionPhone informationII目录前言1第1章课题研究背景与价值2第1.1节 选题的意义与价值2第1.2节 研究综述3第1.3节 课题的研究意义与目的3第1.4节 研究范围与内容4第2章手机舆情系统技术的概况7第2.1节 系统开发环境7第2.2节 系统开发技术8第3章 系统数据采集与存储10第3.1节 系统数据的采集10第3.2节 系统数据的存储11第4章 系统功能设计与实现16第4.1节 用户登录16第4.2节 自定义频道18第4.3节 自定义栏目20第4.4节 爬虫设计与实现24第4.5节 系统数据库结构24第5章 系统测试27第5.1节 系统测试目的与意义27第5.2节 测试过程27第5.3节 其他错误29结论32附录34参考文献35致谢37IV前言伴随着计算机技术,通信技术的发展,网络的规模也越来越大,互联网多元素也随之不断的添加。随着互联网的快速发展,网络已经是成为了一种新的信息传播形式,已经潜移默化的影响着人们的日常生活。网友活跃言论已经达到超前卫的程度,不论是国内大事件还是国外新鲜事件,都能马上参与进来发表言论,通过网络来表述论点、言论思想,从而产生非常大的舆论压力,达到任何单位都没有办法忽略的地步。那么网络舆情早已经悄悄的进入到了我们的生活。用来调侃那些每天都抱着手机过日子的人们段子在网上为数不少,这正成为许多人的真实写照。目前手机基本上已经离不开人们的生活了,手机可以能让一个人的生活变得“充实”而不单调。随着手机越来越智能化,功能也越来越多元化,在生活上也给予我们带来了极大的便利,手机正在成为大多数人生活中“接触最频繁的人”。在这里不过多评价对于手机改变了我们生活的利与弊。我们主要想说的是,既然我们队与手机如此的依赖。那对于我们购买手机的要求条件越来越苛刻。不仅是对它打电话、发短信等的基本功能的要求,还要通过品牌、配置、性价比等综合因素考虑。于是我们花费大量的时间在网上搜索关于手机的各种配置信息、用户评论、性能分析等等。尽管我们花费了大量的时间来搜集相关信息,然而大多数的情况,我们还是找不到我们真正需求的内容来供我们进行参考。然而这个平台就是为你量身定做,我们在各大购物网站来搜集手机销量做统计,在各大手机权威平台网站做最新资讯的采集。从而精确、条理的展现在你的面前,进而解决我们最初的需求。人工智能就是大量数据的采集与分析从而的得到的产物。我们也应该追寻时代的脚步来满足我们的需求。第1章课题研究背景与价值第1.1节选题的意义与价值1.1.1 理论价值与意义现如今,何事物都必须用数据来说话。面对互联网上海量的数据信息,我们呢难以想象通过人工来挑取其中对我们有用的数据。那问题就来了,结合网络信息采集技术和信息文本处理等技术研发一个用户有用的舆情系统是有必要的,它将我们帮助我们在互联网大量数据中。快速的筛选出对自己有利的信息进行分析。它将免去我们面对互联网海量数据的困扰。伴随着互联网信息时代的来到,我们通过在互联网进行数据的采编与处理,可以准确过滤掉对自己没有用的垃圾信息,并通过我们对各大购物网站的信息采集,来判断行业的趋势,免去我们在铺天盖地的大数据中迷失方向。我们可以及时的搜集到准确有用的信息,把我们的时间消损失降到最低。1.1.2 实践价值与意义互联网先如今已经发展成为当今世界上最大的信息库,中国网民人数,全球规模第一。互联网是网民最快最新发布与获取信息的渠道之一,越来越多的信息都是通过互联网散发的,对于其影响力不容小视。根据中国互联网络信息中心(CNNIC)的统计,中国网民规模达到5.13亿,互联网普及率攀升至43.3%,其中20岁以上网民占80%。随着网络在全球范围的快速发展,网络媒体已逐步被公众认可。关于手机,中新社上海2月19日某知名信息技术顾问和研究公司19日发布报告称,2015年全球智能手机销量达14亿部,较2014年增长超过14%。看到如此高的成交量,难道这是巧合。有供求关系才可能达到那么高的交易量,从而那并不是巧合。现在手机行业迅速发展,竞争激烈。对于我们来说也是一个好消息,有竞争才能够让用户的到更多的实惠,那么面对这么多的手机厂商的产品,那我们应该如何面对与抉择呢。据不完全统计,消费者在购买手机前的信息搜集来源:40%信息来着亲朋好友,25%信息来源于实体店体验,45%信息来源于电视广告、网络。可见网络信息也是同样影响消费者选择产品的重要力量。所以每天都有海量的文章每天在互联网上传播,时刻影响着消费者的选择结果。那么做一个针对专一行业的舆情系统是很有必要的11。第1.2节研究综述1.2.1 国内研究根据舆情分析发展来说,国外研究比较早。自19世纪中期初级发展,到20世纪中期已经逐渐成熟。我国舆情研究主要起步于20世纪末,到党的十六届四中全会后,舆情研究与实践迎来高潮。虽然我国舆情研究落后于外国,但我们不怕落后,奋起直追国内的舆情研究也渐渐向世界最前沿靠拢。我国在研究方面,主要是根据政府的舆情信息进展的,研究层次相对于外国来说,深度达不到。就个人观点来看,现在国内舆情的研究存还存在许多的缺口。比如现在国内对于舆情研究主要服务于政府和少数的企业。研究和实践范围太过于单一,然而我认为应该应用于多方面,才能真正的对舆情研究达到一个新的高度。对于服务人群来说,应该每个人都有享受服务的权利。1.2.1 国外研究国外的舆情研究主要是民意调查以及媒体舆论相关方面的,尤其是研究关于民意调查,国外已经对民意调查形成了一个相对完整的理论,并且有一个完成正的应用体系。另外,国内外文化差异和社会形态影响。国内的舆情开展主要是服务于政府,而国外与国内不同,国外则除了服务政府之后还涉及社会经济、社会文化。就个人观点来看,国外的舆情研究比国内研究起步就早,国外的舆情研究多元化,是舆情研究发展的好现象。第1.3节课题的研究意义与目的1.3.1 理论意义正如上文提到,网络信息已经是消费者选择手机产品的有力影响力之一。那将会花掉我们大量的时间去网上查资料,并花大量的时间来阅读,然到最后发现并没有找到我们想要找的信息。然而最大的痛苦莫过于此,我们花费了时间,花费了精力,还没有得到自己想要的数据或者文章。这也是互联网海量数据带来的困扰。面对互联网上海量的数据信息,我们难以想象通过人工来挑取其中对我们有用的数据。那问题就来了,结合网络信息采集技术和信息文本处理等技术研发一个用户有用的舆情系统是有必要的,它将我们帮助我们在互联网大量数据中快速的筛选出对自己有利的信息进行分析。它也将免去我们面对互联网海量数据的困扰。从而改变我们对互联网大数据时代的进一步了解并利用。1.3.2 实践意义那么对于消费者来说有价值的数据就是购买力,那么什么叫有价值的数据呢。首先,你要保证真实性,任何不真实的数据都是在欺骗消费者;然后还要保证时效性。所以一定要保证数据的真实时效性。通过在互联网进行数据的采编与处理,可以准确过滤掉对自己没有用的垃圾信息,并通过我们对各大购物网站的信息采集,来判断行业的趋势,免去我们在铺天盖地的大数据中迷失方向。我们可以及时的搜集到准确有用的信息,把我们的时间消损失降到最低。国内关于,互联网信息采集技术已经愈发的成熟。实现关于手机舆情系统的信息抓取已经没有问题,再加上处理信息的技术逻辑比较简单,技术上的完全可以实现。现在国内的舆情报告大多数则是针对企业用户而设计的,完全针对个人用户的寥寥无几,所以这种针对个人用户和专一行业的舆情系统几乎完全空白。第1.4节研究范围与内容1.4.1 舆情定义舆情是“舆论情况”的简称,是指现实生活中,人们围绕现实生活中发生的某一件事为话题,这个事件可以是国际大事件,也可以是生活中的小事。然而大量网友通过网络针对某个话题自己的想法和立场的品论。从中体现出网友关于社会中的某种现象或者社会中存在的某些问题表述自己表达出自己的信念、态度和意见等等,从而产生的一种社会态度。它是有较多群众关于这种社会态度的综合表现。那么通过什么方式来了解舆论情况的呢,说明白就是对网上的一些数据进行抓取总汇并进行分析,从而得出舆论情况。1.4.2 研究观点这是一个信息时代,在这个数据漫天飞的信息时代。人们应该何去何从,该如何享用信息时代带给我们的好处。每天都有海量的数据铺天盖地,那又该如何在其中选择自己想要的数据。每天都会被网上的垃圾信息搞的心烦意乱,又该怎么面对。个人认为舆情系统不应该只是服务于政府、企业。更应该开放于大众的用户,因为大众也应该有同样的权利享用信息时代带给我们的好处。我们不应该再在这个时代迷茫了。面对这么多的中国网民被铺天盖地信息困扰,是否早就应该得到重视。是时候,给广大中国网民定制一个应用于广大群众的舆情系统了。第1.5节研究视角与方法1.5.1 研究视角与思路 在技术方面,现在的数据抓取技术已逐渐走向更智能的路线。现有的技术也已经逐步发展成熟,支持本系统的数据抓取和挖掘已经足够了。作为数据的挖掘者,我很清楚,大数据的抓取和分析一般都是服务于国家或者企业用户的。然而现在如今也存在大部分人,根本不理解数据分析的概念,导致针对个人用户的舆情分析难以推广。人工智能是以后发展的方向。人们还特别关注人工智能,我相信,还有很多人根本不了解,其实人工智能就是大数据分析的结果。所以我呼吁所有人,开始重视数据吧,举个最实用的例子,上法庭就是讲究的证据。法庭上的证据就是相当于我们现在所分析的数据。大数据时代已经大步迈来,是要选择做一只迷路的小绵羊,还是要选择做一只在狂风暴雨中捕捉事物的狼。相信大多数人们还都为面对大量数据该怎么选择性接受而苦恼,还有部分极端的直接抛弃如此大量的数据,来用自己独特的方式来搜集数据。然而这就大错特错了,本来选择性的相信是正确的理解态度,但完全的不理睬则是很不理性的做法。1.5.2 研究方法(1)文献资料整理法通过整理归纳文献资料,来收集国内舆情网站的相关知识,其中也包含网页界面设计相关理论和设计案例。(2)案例研究比较分析法通过国内外对舆情网站的布局设计和功能实现,总结出各个产品界面的优劣,实现自己的产品设计。(3)多科学综合研究法在自己的设计过程中涉及到的相关科学领域,如美学、设计学、心里学等放在一个设计平台上综合研究。为全面的、系统的设计出舆情网站打下良好的理论基础。第2章手机舆情系统技术的概况第2.1节系统开发环境 2.1.1系统开发环境系统软件:任意开发操作系统硬件要求:INTELI I3以上, 4G DDR3 RAM,SSD 256G浏览器:IE8以上、火狐、谷歌 、欧朋、qq等数据库服务器:MySql。使用Python flask框架,首先在本地电脑安装Python并配置环境 ,使得在本地可以正常使用。然后安装pip管理包,pip是安装和管理Python包的。然后安装利用pip工具安装flask框架。pip install flask安装成功,则开发环境配置完成1。2.1.2系统开发环境配置(1)Win7 Python 安装首先,下载一个匹配本机的Python安装包,注意这里是区分32位系统和64位系统的,查看自己系统。下载完成后点击打开Python安装包,选择install just for me点击下一步。选择安装路径时一般选择默认安装到C盘,但我不能容忍在C盘安装任何东西,所以我选择安装到D盘,其实安装到哪个盘都是OK的。选择Python所要安装的文件时默认全部安装,直接点击下一步。然后等待小会完成安装,点击完成安装。下一步需要的就是配置环境变量了。这一步很关键,找到环境变量选择PATH,然后在变量值后面复制你的安装路径,注意一定要带后面的分号。然后就可以在CMD命令行中尽情的蹂躏它了3。 (2)pip和flask 安装安装pip之前我们首先要安装easy_install,这也是Python包管理的一个工具。百度搜索easy_install找到起下载页面找到ez_setup.py并下载下来。然后启用Python运行其文件(python ez_setup.py)安装成功后,还要配置一下环境变量,打开安装Python文件夹找到scripts文件夹(能找到这个文件夹说明已经安装成功)双击打开,然后复制此时路径。然后在环境变量后面添加此路径,则安装完成。然而我们最终的目的是安装pip,进入命令行,把目录切换到Python安装目录下。在scripts文件下直接运行easy_inatall.exe pip命令完成pip安装。安装flask框架。此时pip安装成功后,我们可以直接运行命令行pip install flask进行安装和使用,但一般没有人会这样做。如果我们这个环境需要同时部署两个或者以上的服务,那么很大可能会报错,导致服务无法启动。所以尽量的保证模块的独立性,这样会避免很多完全不必要的麻烦。这里我们就用到了VirtualEnv,在这里VirtualEnv的安装就不多介绍了。成功安装后,创建新的虚拟环境。并在创建后的虚拟环境中运行pip install flask 安装完成。2.1.3系统开发工具(1) Sublime Text编译器是一款跨平台的代码编辑器,支持基于Python的插件。Sublime Text 是付费软件,但不购买也可以使用。可通过包(Package)武装本身的功能。不仅完美的支持多种编程语言、并且拥有优秀的自动代码完成,还拥有代码片段功能,能将使用频率高的的代码片段存储起来,在需要时调用。支持 VIM 模式,可以使用Vim模式下的多数命令。还具有编辑状态恢复能力,就是当你修改了一个文件,但没有及时保存,这时候软件退出,它不会询问是否需要保存的,因为不管是用户还是程序以外崩溃所造成的退出,再次启动软件时,之前的编辑状态就会完整复原,就像退出前一样2。(2)MySQL数据库MySQL是一种开放源代码的关系型数据库管理系统(RDBMS)。使用相当方便,与相关软件兼容性强等优点。安全系数也是相当高,可以根据自己的需求来定制MySQL数据库。当然市面上优秀的数据不只MySQL数据库一种。灵活性特别高,也是大多数人选择MySQL数据库的根本原因。第2.2节系统开发技术2.2.1 Python flask介绍Python语法简洁清晰,强制用空白符(white space)作为语句缩进。Flask是基于Python语言的一种服务器端框架,强大的功能一点都不逊色于其他服务器框架,再加上简单的操作使得flask收到越来越多人的喜爱。2.2.2 爬虫介绍爬虫,就是互联网爬虫,可以理解成它就是一只在蜘蛛网上爬行的蜘蛛,互联网就就是蜘蛛脚下的那张蜘蛛网,而互联网不同于蜘蛛网的是互联网是一张虚拟的网,蜘蛛网则是一张事实存在的物质。爬虫即是蜘蛛网上爬来爬去的蜘蛛,如果它遇到什么想要的,那么资源就是被抓取下来。想抓取什么?这个由你来控制它。Python被广泛用来写爬虫,是什么原因呢?可能是python的框架比较成熟吧。首先Python是一门解释型语言。不需要复杂的编译过程。其次Python的语法非常简单,接近于伪码。2.2.3 HTML简介Hypertext Markup Language是其HTML的全称,中文译为“超文本标记语言”。HTML主要功能用于内容展示,HTML一般配合CSS和JAVASCRIPT一起使用。个人认为HTML就是一个文本文件,其中包含浏览器的标识符,来告诉浏览器改怎样解析此文本文件13。2.2.4 JavaScript 简介JavaScript是一种网页脚本语言,所以很快的被大家应用于Web开发,其中所能够看到的网页添加多样式的动态功能,更是为广大的用户给予其更加美观和更流畅的页面浏览效果。一般JavaScript脚本是直接镶嵌在HTML中来实现某中特定的效果的。但通常情况下会影响整个用户体验,所以不建议直接在HTML中镶嵌JavaScript脚本的。它是一种解释脚本语言,主要是负责web前端的交互行为,可以直接嵌在网页中,也可以写成单独的js文件并引入文件1417。第3章系统数据采集与存储第3.1节系统数据的采集3.1.1数据采集范围分析作为一个特别追崇这种产品信息的人,感觉到了自己发言机会来了。拿自己来说,我就特别喜欢一些产品最新的资讯,比如某某品牌又出新款的产品了、某某款产品的性能对比等等。但我从来不喜欢在百度直接搜索,因为我已经对百度出来的结果失望至极。每次在百度搜索出来都有一大堆的垃圾信息,各种推广、各种广告、各种打折。如果想全面了解认识一款产品,首先只了解官网的信息那是不全面的。每个品牌的官网都不会告诉你,这款产品的缺点是什么,在官网的数据看,生产的产品永远只有优点没有缺点。所以我还会选择那些比较权威的第三方的文章进行下一步的了解,首先,第三方是一个完全独立的第三方,在里面没有利益关系,所以第三方就可以相对于品牌厂商来说更公平、更准确的来判定一个产品的定位。那么我们要选择什么样的第三方呢?首先必须权威,要对这些时刻关注着他们的这些各行各业的人们负责。不能对自己说过的话,对自己发表过得文章不负责。再一个就是要公平公正的对待,不能徇私舞弊。综合这些条件,经过查询了许多资料。最终决定主要针对如下网站进行数据抓取:/ 中关村在线/ 太平洋/ 新浪/ 手机世界/ 泡泡手机/ 手机之家/ 手机中国/ 网易手机/ it168手机3.1.2数据采集的实现爬虫数据采集,就是通过抓取事先决定好的网站网址,且根据网站的文章列表生文章的URL列表。然后进行文章网页的抓取、分析并存入数据库中。如图3.1所示:网站根域名抓取主页面解析源文件URL列表页面抓取采集数据库图3.1 工作流程图3.1.2采集数据的处理当然收集到的网页信息绝对不是自己想要的结果,那我们就要对抓取的数据进行处理。其实收集到的许多HTML标签、JavaScript代码等与文章没有一点关系,所以我们要对文章提纯,去掉我们不想要的,拿走我们需要的。网页文档中除了文章标题和文章内容,还会有我们所有人都讨厌的广告和各种超链接。它们着实很让人头疼。那我们就要对整体的网页结构认真的做分析,这样我们才能在如此复杂的HTML标签里面来拿走我们想要的,留下我们不想要的。根据分析研究,对文章主题信息的提取,可以缩短大量的浏览时间。针对网页布局,网页中文章主题提取是数据处理得重要环节。网页中文章的布局远比我们现实文本文章的布局要复杂的多的多。所以我们要认真的分析文章网页中的布局情况进行准确的数据提取。第3.2节系统数据的存储3.2.1数据存储数据分析现在几乎全部的资讯网站,都已发表文章的形式向读者传递信息。文章可以让读者更全面的认识到事物,不同于简讯,简讯只是让我们看到了表面而没有让读者更深入的了解到许多细节性的东西。而发表文章就大有不同了,让读者更全面、更细致的去了解一个产品或者一种事物。现如今这种方式也已经被大多数人认可并采用。同时也很注重信息全面的重要性。所以决定,主要对这些网站的一些文章作为抓取的对象,抓取文章的标题、时间、网站来源、文章内容并存入数据库。3.2.2数据库编码数据库编码问题一直是一个让人头疼的问题,数据库编码出现的错误也肯定直接关系到数据是否能正确存储。要确定数据存储的高效性和正确性,就一定要保证数据库编码合理。| character_set_client | character_set_connection | character_set_database | character_set_filesystem | character_set_results | character_set_server | character_set_system | 上述则是数据库所有编码选项,大部分资料说明应该把所有编码格式编码为utf-8。但经过实际操作全部编码改为utf-8后,出现中文字符无法插入数据库的问题。所以最终的编码格式改为:| character_set_client | gbk| character_set_connection | gbk| character_set_database | utf8| character_set_filesystem | binary| character_set_results | gbk| character_set_server | utf8| character_set_system | utf83.2.2数据库建表每个网站的信息记录都是一张独立的表,以免存在一个表中数据量过大,数据库表一出错,就导致全部瘫痪。这样我们就有很高的操作性,虽然多表查询会直接影响数据查询的效率。但相比较下,稳定性远远比查询效率高重要的多。所以选择舍去查询效率,留下系统稳定性。表3.1中关村在线数据存储表(zol)Field NameField TypeSizeNullPrimarykeyImplementationzol_idint11否是文章idzol_titlevarchar100否否文章标题zol_urlvarchar100否否文章urlzol_timevarchar100否否文章时间zol_contentvarchar10000否否文章内容表3.2新浪数据存储表(sina)Field NameField TypeSizeNullPrimarykeyImplementationsina_idint11否是文章idsina_titlevarchar100否否文章标题sina_urlvarchar100否否文章urlsina_timevarchar100否否文章时间sina_contentvarchar10000否否文章内容表3.3手机世界数据存储表(3533_)Field NameField TypeSizeNullPrimarykeyImplementation3353_idint11否是文章id3353_titlevarchar100否否文章标题3353_urlvarchar100否否文章url3353_timevarchar100否否文章时间3353_contentvarchar10000否否文章内容表3.4泡泡手机数据存储表(pcpop)Field NameField TypeSizeNullPrimarykeyImplementationpcpop_idint11否是文章idpcpop_titlevarchar100否否文章标题pcpop_urlvarchar100否否文章urlpcpop_timevarchar100否否文章时间pcpop_contentvarchar10000否否文章内容表3.5手机之家数据存储表(imobile)Field NameField TypeSizeNullPrimarykeyImplementationimobile_idint11否是文章idimobile_titlevarchar100否否文章标题imobile_urlvarchar100否否文章urlimobile_timevarchar100否否文章时间imobile_contentvarchar10000否否文章内容表3.6手机中国数据存储表(cnmo)Field NameField TypeSizeNullPrimarykeyImplementationcnmo_idint11否是文章idcnmo_titlevarchar100否否文章标题cnmo_urlvarchar100否否文章urlcnmo_timevarchar100否否文章时间cnmo_contentvarchar10000否否文章内容表3.7网易手机数据存储表(163_)Field NameField TypeSizeNullPrimarykeyImplementation163_idint11否是文章id163_titlevarchar100否否文章标题163_urlvarchar100否否文章url163_timevarchar100否否文章时间163_contentvarchar10000否否文章内容表3.8it168手机数据存储表(it168)Field NameField TypeSizeNullPrimarykeyImplementationit168_idint11否是文章idit168_titlevarchar100否否文章标题it168_urlvarchar100否否文章urlit168_timevarchar100否否文章时间it168_contentvarchar10000否否文章内容第4章系统功能设计与实现在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。系统模块设计如图4.1所示:图4.1模块功能图第4.1节用户登录程序运行效果图如图4.2所示:图4.2用户登陆页面设计 登录验证图如图4.3 所示:图4.3登录验证图在登陆页面输入用户名和密码以后,点击提交按钮,触发jquery绑定事件,jquery通过input 输入框的ID来获取用户输入的用户名密码。然后由jquery ajax利用POST方式把用户名密码传给后台,由后台再查数据库user表中的数据来进行比对。如果用户名密码正确,后台则返回前台的json串没有error,则前端就认为用户名密码正确。则做相应的跳转;如果后台在数据库未找到用户名或者密码错误,则后台返回前端带有error的json串,则前端读取到错误信息,则不做相应的跳转。用户就停留在登录页面继续登录,直到后台判断用户名密码正确返回前端没有error的json串,则用户登录成功。Jquery利用ajax post方式传json给后台关键代码见附录代码片段1;后台制作登录接口,及查询数据库user表关键代码见附录代码片段2。除此之外,利用jquery在提交请求之前判断用户名和密码是否为空,只要有一个为空,则请求无法发送,并在页面中警告(红色字体)用户名和密码不能为空。其中关键jquery代码为:if (!userInfo.user_name | !userInfo.password) $(#errorInfo).html(用户名和密码不能空).show();return;第4.2节自定义频道描述:频道就是起到一个根标题的作用,可以把频道理解成平时归置物品或者整理信息的时候的一个举足轻重的分类标签。如果没有频道的分类,在你添加的栏目少时,并不感觉怎么样,当添加的栏目多的时候,就会明显乱成一团。这就是设定频道的意义。程序运行效果图如图4.4图4.6所示:图4.4添加频道提示图4.4所示 是用户首次登录系统,或数据库中没有找到相关用户中的频道数据时,提示添加新的导航频道。图4.5交互模态框图4.5 是点击编辑频道按钮,弹出添加导航交互模态框。图4.6添加导航图4.6所示 是点击添加导航按钮,出现一个input框并在输入框内输入自定义频道名称。图4.7频道页面图4.7所示 点击编辑完成会提示即将完成此操作是否确定,点击确定,添加成功添加自定义频道。默认跳转到新创建的频道页面下,若因程序出错或因为不明因素导致添加失败则弹出报错模态框。点击编辑完成后程序的运行过程,点击编辑完成后,js先判断input输入框中是否为空。频道名为空时,提示错误频道名字不能为空。如果频道名字js验证通过,则通过ajax向后台提交请求,后台则通过api针对数据做处理。直接操作数据库,添加频道。后台接口处理数据,并操作数据库关键代码见附录代码片段3。第4.3节自定义栏目栏目就是频道的的内容,也就是相当于你在整理信息是被贴上标签的内容。程序运行效果图如图4.8图4.9所示: 图4.8系统添加栏目图4.7 表示当前频道下数据库中没有搜索到相关栏目,提示点击按钮添加栏目页面。图4.9添加栏目图4.8 点击添加栏目按钮之后,弹出添加栏目交互模态框。栏目名称为此栏目的名字,栏目位置是选择位于现有的导航里面之一,栏目宽度可以选择半栏或者通栏,暂时不提供自定义宽度;栏目关键字输入。其中栏目中的所有文章列表都是根据关键字查询出来。图4.10栏目图4.9 是模态框中所填内容符合要求,并点击确定按钮创建成功后的栏目框。栏目所有的文章都是根据输入关键词魅族在本地数据库中搜索出来的文章,后面的跟着文章的来源和日期。如果想直接查看文章,那直接点击文章标题即可查看整篇文章。其中文章内容全部是在数据库中的存储的文章内容,其中把所有的html标签全部去除,只保留了和标签,所以大致保留了文章的布局和文章图片。如图4.10所示:图4.11文章内容如果文章列表中没有想看的文章,可以直接点击查看更多,即可看到根据关键词查看的所有文章,在所有文章中可以中也可以直接查看文章内容也可以直接打开新的页面查看原文章如图4.12所示:图4.12查看更多页面那么如果没有匹配到文章,栏目则显示为空,那么这个栏目就废弃了。就是为了防止类似的情况发生,在栏目的右上角设置了一个栏目设置按钮,如图4.13所示:图4.13栏目设置点击编辑栏目,可以重新针对栏目属性进行修改,包括针对栏目关键词的修改,将重新赋予栏目新的生命。如果真不需要类似的此栏目,则可以直接点击移除栏目,就可以直接删除。那么点击编辑栏目程序运行的关键代码见附录代码片段4.第4.4节爬虫设计与实现爬虫数据采集,就是通过抓取事先决定好的网站网址,且根据网站的文章列表生文章的URL列表。然后进行文章网页的抓取、分析并存入数据库中。爬虫关键代码见附录代码片段5。工作流程图如图4.14所示:网站根域名抓取主页面解析源文件URL列表页面抓取采集数据库图4.14爬虫工作流程图第4.5节系统数据库结构表4.1用户表(user)Field NameField TypeSizeNullPrimarykeyImplementationidint11否是用户iduser_namevarchar10否否用户名user_passwordvarchar10否否用户密码表4.1频道表(channel)Field NameField TypeSizeNullPrimarykeyForeignkeyImplementationchannel_idint11否是否频道idchannel_namevarchar10否否否频道名order_idint11否否否顺序ididint11否否否用户id表4.1栏目表(columns)Field NameField TypeSizeNullPrimarykeyForeignkeyImplementationcolumn_idint11否是否栏目idcolumn_namevarchar10否否否栏目名称order_idint11否否否栏目加载顺序idstylevarchar10否否否栏目样式rulesvarchar50否否否栏目的关键字channel_idint11否否是频道id表4.1管理员表(admin)Field NameField TypeSizeNullPrimarykeyImplementationadmin_idint11否是频道idadmin_namevarchar10否否频道名admin_passwordint11否否顺序id第5章 系统测试第5.1节 系统测试目的与意义系统测试对于一个网站来说是很重要的部分。在开发软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可避免地会产生错误。测试目的在于:发现错误而执行一个程序的过程,测试的最重要目的是发现其中尚未发现的错误。第5.2节 测试过程在一开始测试的时候,由于数据库中的数据假的,是在没有规则的情况下随意输入的,根本没有实用的可能性,为了让系统完善。在测试过程当中全部采用真实有效的数据进行测试。这样才能真实的反应系统功能实现的真实情况。发现了真实存在的情况,那就需要不断的去修改,去完善。不要怕问题多,不要怕bug多,没解决一个bug那么系统就离完美更进一步。有的问题是不容易被发现的,那就需要我们耐心的反复的一遍遍的进行测试、调试,找到问题并解决问题。5.2.1 程序风格统一的测试对于一个网站的成功与否,对于这个网站最重要的就是他必须要有一个优秀的设计师,然后是一个具有一定优秀页面设计功底的程序员,一个制作好的网站来说,设计是他的灵魂和核心,首先,最重要的是要给用户一种视觉冲击,也就是界面的美感。网站本身的构思与设计,例如:文字内容的排版、图片的选择与制作、静态无声的图文等,另外一方面,也就是网站延伸的设计。它具体包括了网站主题的设定、数据的交互、形象的包装。这两个方面是密不可分的,在对网站制作完成后,我首先测试的就是社区网的整体风格和它的色调是否和谐,每一个类型的网站都有它特定的主题风格和色调,我的丰县社区网的整体设计风格和色调都是为了给人一种舒适的感觉,以蓝色调为主,其他颜色的搭配为辅,让社区网的用户登陆后,能够有一种轻松愉悦的感觉。在网站风格测试的最后,我要看每个页面上的排版风格、相应的字体颜色、字体大小、字体特效、文本排版风格、文本的颜色、以及表格属性、位置、行高行间距等等都要有统一的设置。让网站的整体都更加的和谐,具有一种舒心的感觉。5.2.2 主页面的登录模块测试登录测试流程: (1)打开系统首页,输入错误的登录信息(2)登录(3)输入正确的登录信息(4)登录(5)测试结果表5.1测试登记表模块数据预期实际是否合格登录模块用户名:test 密码:null错误提示,密码不能为空错误提示,密码不能为空通过登录模块用户名:null密码:test错误提示,用户名不能为空错误提示,用户名不能为空通过登录模块用户名:m1密码:1错误提示,用户名不存在登录失败,错误提示用户名不存在通过5.2.3 页面操作测试 添加频道模块测试:(1)添加频道(2)不输入字符点击编辑完成(3)输入超长字符点击编辑完成(4)输入两个内容相同字符串点击编辑完成 表5.2测试登记表模块数据预期实际是否合格添加频道模块不输入字符串错误提示,频道名字不能为空错误提示,频道名字不能为空合格添加频道模块程序设计实现的过程中不可避

温馨提示

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

评论

0/150

提交评论