网络舆情数据采集系统开发毕业设计论文.doc_第1页
网络舆情数据采集系统开发毕业设计论文.doc_第2页
网络舆情数据采集系统开发毕业设计论文.doc_第3页
网络舆情数据采集系统开发毕业设计论文.doc_第4页
网络舆情数据采集系统开发毕业设计论文.doc_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

重庆邮电大学毕业设计(论文)设计(论文)题目:网络舆情数据采集系统开发学 院 名 称 :计算机科学与技术学院学 生 姓 名 :专 业 :信息安全班 级 :学 号 :指 导 教 师 :答辩组 负责人 :填表时间: 2013 年 6 月重庆邮电大学教务处制重庆邮电大学本科毕业设计(论文)摘 要互联网发展至今,传统媒体已经日渐落寞,作为新生代媒体,网络已经在这一领域占据了越来越重要的地位,而且这种趋势还在上涨。现今,越来越多的人通过互联网来表达自己对社会现状的态度和政治诉求等等,从互联网这一自由开放的媒体中了解民生,开展网络舆情信息采集和分析,已经各级政府部门目前面临的重要课题。互联网作为新生代媒体,其发展势头迅猛,各大门户网站纷纷进军互联网领域抢占市场,竞争十分激烈,而其中新浪在这场竞争中表现得相当出色,新浪微博成为民众信息分享平台的首选。本论文就设计了一个专门针对新浪微博的舆情数据采集系统,它包含如下几个功能:查询指定用户的微博信息、查询指定微博的评论信息和转发信息、查询指定用户的所有粉丝和搜索该用户的指定粉丝、查询指定用户的所有关注和搜索该用户的指定关注以及将上述信息保存到本地数据库中,供以后对数据进行分析。该系统是基于新浪官方提供的API来开发的,采用Java和MySQL实现软件的开发,Java实现软件的界面和数据展示,MySQL实现数据的存储。工作时,它根据用户输入的信息,采用多线程方式去采集用户数据,主界面弹出等待提示框,给用户提供良好的用户体验。在展示数据的时候,考虑到微博数据的庞大,该系统采用了分页技术来展示数据,而且对界面进行了美化,给用户提供一个美观的界面浏览。【关键词】网络舆情 新浪微博 Java MySQL 微博API- 61 -ABSTRACTSince the development of Internet, traditional media has already lonely, as a new generation of media, the network has become more and more important in this field, and the trend is still rising. Nowadays, more and more people through the Internet to express themselves on the social status of the attitude and political appeal and so on, to understand the peoples livelihood from the Internet which is a free and open media, network public opinion information collection and analysis, an important issue has been at all levels of government departments are currently facing.Internet as a new generation of media, the momentum of rapid development, the major portals have to enter the field of Internet to seize the market, competition is very fierce, and Sina in this competition performed very well, Sina micro-blog public information sharing platform of choice. This thesis is to design a specific Sina micro-blog public opinion data acquisition system, which includes the following functions: query specifies the users micro-blog, micro-blog information query specifies the comment information and forwarding information, query specifies the user all the fans and search the user specified fans, query specifies all of the users attention and search the specified user attention and the information is saved to a local database, for later data analysis.The system is based on API to Sina official development, developed using Java and MySQL software, Java software interface and data display, MySQL data storage. When working, it according to the input information of a user, using multiple threads to collect user data, the main interface pops up wait for a prompt box, to provide users with a good user experience. In the display of the data when the micro-blog, considering the huge data, the system uses the paging technique to display data, and the interface is beautiful, to provide users with a beautiful interface to browse.【Key words】Network public opinion Sina micro-blog Java MySQL Micro-blog API目 录前 言1第一章 系统相关技术概述2第一节 Java技术概述2一、Java简要介绍2二、GUI图形用户界面2三、多线程3四、JDBC数据库连接3第二节 新浪微博Java SDK4一、微博Java SDK概述4二、授权认证4第三节 MySQL技术概述5一、MySQL概述5二、MySQL的特性5第四节 本章小结6第二章 需求分析7第一节 系统功能需求7一、系统目标7二、功能分析7三、系统层次模块图8第二节 系统性能要求9第三节 运行环境9第四节 系统用例图10第五节 本章小结10第三章 系统设计11第一节 系统结构分析11一、系统结构图11第二节 系统功能模块分析12一、系统模块设计12二、各子功能模块分析12第三节 系统数据库设计13一、系统数据库对象13二、系统数据表13第四节 系统各模块设计16一、启动模块的设计16二、查看微博的设计17三、查看粉丝的设计19四、查看关注的设计21五、查看评论的设计22六、查看转发的设计23第五节 本章小结25第四章 系统实现26第一节 开发环境的搭建26一、Java开发环境的搭建26二、数据库环境的搭建28第二节 各功能模块的具体实现29一、授权认证的实现29二、启动模块的实现30三、查看微博的实现31四、查看粉丝的实现35五、查看关注的实现36六、查看评论的实现38七、查看转发的实现39第三节 本章小结40第五章 系统效果展示41第一节 效果展示41一、主界面效果展示41二、查看微博的效果展示42三、查看粉丝的效果展示42四、查看关注的效果展示43五、查看评论的效果展示44六、查看转发的效果展示45第二节 本章小结45结 论46致 谢47参考文献48附 录49一、英文原文:49二、英文翻译:55前 言截至目前,国内关于网络舆情的概念还没有一个统一的定义,来自天津社科院的王来华认为:舆情在其狭义上是指民众受中介性社会事项,刺激而产生的社会政治态度;而网络舆情,则主要指使用网络者或俗称“网民”的社会政治态度1。我个人也比较认同王来华教授的观点。随着因特网在全球范围内的飞速发展,网络媒体已被公认为是继报纸、广播、电视之后的“第四媒体”,网络成为反映社会舆情的主要载体之一。网络环境下的舆情信息的主要来源有:新闻评论、BBS、微博等。网络舆情表达快捷、信息多元,方式互动,具备传统媒体无法比拟的优势。在我国,网民以往都是呈原子状态的个体分散在全国各区域,而如今,一个由“网络化用户”构成的“网众”群体已悄然崛起,并以数以亿计的庞大用户群体构成了一个“压力集团”,截至目前,这个集团的数量与力量还呈现出上升的态势2。结合网络舆情的特性和我国的基本国情,网民通过互联网来表达自己的观点诉求已成为我国公民参与政治生活的重要部分。当某一社会事件被迅速关注进而升温成为社会焦点或公共性事件时,国内网民便纷纷通过网络发表自己的看法。正是基于这样的形式,网络舆情数据采集分析成为各级政府部门面临的不可或缺的重要课题。经过这几年发展,新浪微博3在国内社交平台市场的竞争中算是领先一步,他占据了大部分用户群体。结合国内对舆情信息的采集分析工作的迫切需求,本文的作品就设计了一个专门针对新浪微博的舆情数据采集系统,它包含如下几个功能:查询指定用户的微博信息、查询指定微博的评论信息和转发信息、查询指定用户的所有粉丝和搜索该用户的粉丝、查询指定用户的所有关注和搜索该用户的关注;该作品不仅做了数据的展现,还实现了数据存储,每次查询的用户信息、微博信息等都被存储在本地数据库中。舆情数据采集是舆情信息监控的基础,这明确了本系统存在的意义。另外,对政府部门来说,他们可以通过研究这些舆情数据,了解民众的政治态度和需求,只有更彻底的了解民生,才能更好的制定政策为人民服务;对于商家来说,他们可以研究这些舆情数据,了解消费者对他们产品的评价,就能有针对性的对产品进行改善,这样既能提升产品的质量,获得消费者的信赖,又能增加收益,达到双赢的目的;对于研究所来说,他们可以对这些数据进行数据挖掘,实现其相应的价值。第一章 系统相关技术概述第一节 Java技术概述一、Java简要介绍Java由Sun Microsystems公司于1995年5月推出的一门面向对象的程序设计语言,用它编写的应用程序具有跨平台的特征。Java框架下包含三大平台:JavaSE、JavaEE和 JavaME。JavaSE是Java平台标准版的简称,用于开发服务器、桌面和嵌入式设备中的Java应用程序;JavaEE一种用来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构,JavaEE的基础是JavaSE; JavaME是一个用来为移动平台提供的基于Java环境开发的技术规范的集合。Java技术凭借着它的高效性、安全性、通用性和平台移植性,目前被广泛应用于个人PC、移动电话、科学超级计算机、游戏控制台和互联网等领域。在全球云计算和移动互联网的产业环境下,Java4更具备了显著优势和广阔前景。二、GUI图形用户界面随着互联网的飞速发展,Java 技术也得到了越来越广泛的应用。而无论我们是采用 JavaSE、JavaEE 还是 JavaME开发,图形用户界面都是我们不能逃避的问题。现在的用户总希望我们开发的软件功能丰富强大而又操作简单,这就需要开发者注重界面的友好性,GUI就成了Java开发者不可或缺的重要课题。Java使用AWT和Swing类库来完成图形用户界面的编程,其中AWT的全称是抽象窗口工具集(Abstract Window Toolkit),它是Sun公司最早提供的GUI库,这个GUI库提供了一些基本功能,但这个GUI库的功能比较有限,所以后来又提供了Swing库5。Java开发者通过使用AWT和Swing提供的组件库,程序只需创建所需的图形组件,并用合适的布局管理器来组织这些组件按照特定的方式排列,就可以开发出非常完美的用户界面。如果想要实现用户与界面之间的交互,开发者还应为程序添加事件监听,让事件处理来完成响应用户动作。本论文作品主要用到了Swing库中的JButton、JLable、JTextField、JTable、JScrollPanel、JFrame、JPanel等组件,用到了AWT库中的BorderLayout、FlowLayout等布局管理器组件。三、多线程多线程是Java的一大特色,那么什么是多线程呢,下面用一个简单的例子来解释:我们可以在操作系统中同时运行多个任务,一个任务就是一个程序,每个运行中的程序我们称为一个进程,在这个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程。既然有多线程,那么必然会有单线程,所谓单线程就是说程序内部只有一条顺序执行流;则多线程就可以理解为程序内部有多条顺序执行流,而且多个顺序执行流之间互不干扰。Java的多线程有两种实现方式:继承Thread类和实现Runnable接口。本论文作品的多线程体现在给用户良好的用户体验方面:当用户点击一项功能时,如果该功能是一项很费时的操作,那么程序就会单开一个线程去完成这个费时的操作,主线程弹出用户等待提示框,当操作完成时,提示框自动消失。四、JDBC数据库连接JDBC6是Java连接数据库的一项技术,它是用来执行SQL语句的Java API,它的全称是Java Database Connectivity。通过使用JDBC API,Java程序可以非常方便的操作各种主流数据库,由于Java语言的跨平台特性,所以使用JDBC API所编写的程序不仅可以实现跨数据库,还可以跨平台,具有非常优秀的可移植性。JDBC连接数据库的步骤如下(以MySQL数据库为例): 加载JDBC驱动程序Class.forName(com.mysql.jdbc.Driver); 创建数据库连接String url = jdbc:mysql:/:3306/weibo_sina;String user = root;String password = 123456;Connection ct = null;ct = DriverManager.getConnection(url, user, password); 预编译并执行SQL语句PreparedStatement ps = null;ps = ct.prepareStatement(sql);ps.executeUpdate(); 关闭JDBC对象public void close() try if (rs != null)rs.close();if (ps != null)ps.close();if (ct != null)ct.close(); catch (Exception e) e.printStackTrace();本论文作品主要通过MySQL数据库来存储获取的微博、用户等信息。第二节 新浪微博Java SDK一、微博Java SDK概述微博Java SDK是新浪为Java开发者提供的专门用于访问新浪微博的接口,通过微博Java SDK,第三方微博应用可以很方便的访问微博提供的API接口,获取到需要的信息。微博Java SDK的整体架构包含如下几个: src:weibo4j封装了大部分接口,包括授权,timeline,用户等常见接口weibo4j.http包含了https请求的封装weibo4j.model包含了user,status等实体类.json 完成json解析的各种方法weibo4j.util 包含了请求api接口时候所需要的工具类 examples:里面包含了封装接口的各个测试demo二、授权认证要调用新浪微博SDK就需要先完成授权认证,只有授权的应用才有资格去访问微博的API。授权认证7的步骤如下: 注册应用。要调用新浪微博API,就需要先到新浪微博开放平台去注册并创建一个应用,地址是:/development。新浪官方会给每一个应用一个专属的App Key和App Secret。Key跟Secret的使用方式跟其他一些协议中的公钥私钥的方案相类似,你可以使用你所熟悉的编程语言将key和secret结合,为你发出的每个请求添加签名,以此来向新浪微博开放平台表明自己身份的合法性。 填写配置文件。到perties文件中填写好client_ID、client_SERCRET和redirect_URI三个参数,他们分别填写你的应用的App Key、App Secret和回调地址。 获取code参数。运行OAUTH4CODE类,获取code,即用户授权登陆后,地址栏上出现的code。 通过code换取access_token。获取到access_token后,表示我们的应用已经授权成功,我们就可以通过access_token来访问新浪微博API的接口。第三节 MySQL技术概述一、MySQL概述MySQL8是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司,现已被Oracle公司收购。MySQL与目前市场上的其他大型数据库(Oracle、DB2、SQL Server)相比,存在功能小、规模有限等不足。但这些不足丝毫没有减少它的受欢迎度,相反,这些不足反而成就了它小巧、查询快捷、健壮易用的优点,让MySQL成为了目前大多数中小型企业的首选,由于MySQL是一款开源软件,这个可以大大降低企业的开销成本,这一特点也是MySQL如此受欢迎的原因之一。二、MySQL的特性MySQL作为一个小型关系型数据库管理系统,它有如下特性来让用户选择它作为自己应用的数据库: 使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性; 支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统; 为多种编程语言提供了API。这些编程语言包括C、C+、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等; 支持多线程,充分利用CPU资源; 优化的SQL查询算法,有效地提高查询速度; 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名; 提供TCP/IP、ODBC和JDBC等多种数据库连接途径; 提供用于管理、检查、优化数据库操作的管理工具; 可以处理拥有上千万条记录的大型数据库;第四节 本章小结在本章中,主要对网络舆情数据采集系统开发涉及到的技术理论知识进行了基本介绍,其中主要介绍了Java中的GUI图形用户界面的实现机制,JDBC数据库连接原理和步骤、Java多线程的原理和实现方式、新浪微博Java SDK的概述和授权步骤,最后对MySQL数据库进行了简要的介绍。第二章 需求分析需求分析工作是软件工程9生命周期中的第一步,也是起决定性的一步,在需求分析阶段我们需要全面了解整个系统的功能和性能方面的要求,为软件设计打下坚实的基础。需求分析阶段的目标主要有:获得目标系统的物理模型,了解目标系统的运行原理及机制;抽象出目标系统的逻辑模型,对物理模型进行筛选,得到与软件系统有关的部分;建立目标系统的逻辑模型,得出数据流图和数据字典;补充目标系统的逻辑模型,对目标系统的用户界面、至今尚未考虑的细节进行说明。第一节 系统功能需求一、系统目标网络舆情很客观的反应民众的需求与政治态度,政府迫切需要了解舆情,正式基于这样的需求,本系统应运而生,完成微博信息的收集并实现数据的展示功能,为后面的舆情分析打下基础。二、功能分析开发软件首先做的是开发过程中最主要的就是系统的需求分析10,需求分析同时也是软件生存周期中关键的一步。根据软件工程学中开发软件的要求,对系统全部功能和相关的技术进行具体的分析,分析时采用结构化的分析方法,自顶向下、逐层分解问题。结合政府需求和实际的具体分析,要求本系统具有以下功能: 查看用户的微博根据用户输入的微博用户昵称关键字,系统单开一个线程向新浪服务器发出用户微博查询请求,系统解析服务器返回的结果,然后系统将返回的微博信息分页显示。 查看用户的粉丝根据用户输入的微博用户昵称关键字,系统单开一个线程向新浪服务器发出用户粉丝查询请求,系统解析服务器返回的结果,然后系统将返回的粉丝信息分页显示。 搜索指定用户粉丝在查看用户粉丝的时候,有些用户粉丝可能特别多,分页后就会存在很多页,那么就会很难找某个具体的粉丝。鉴于这种情况,本系统就特定做了一个粉丝搜索功能,搜索出包含用户输入的关键字的粉丝展示出来。 查看用户的关注根据用户输入的微博用户昵称关键字,系统单开一个线程向新浪服务器发出用户关注查询请求,系统解析服务器返回的结果,然后系统将返回的关注信息分页显示。 搜索指定用户关注在查看用户关注的时候,有些用户关注的人可能特别多,分页后就会存在很多页,那么就会很难找某个具体的关注。鉴于这种情况,本系统就特定做了一个关注搜索功能,搜索出包含用户输入的关键字的关注展示出来。 查看微博的转发情况根据用户点击的微博id,系统单开一个线程向新浪服务器发出微博转发情况查询请求,系统解析服务器返回的结果,然后系统将返回的微博转发信息分页显示。 查看微博的评论情况根据用户点击的微博id,系统单开一个线程向新浪服务器发出微博评论情况查询请求,系统解析服务器返回的结果,然后系统将返回的微博评论信息分页显示。 存储微博、用户、关系、评论、转发信息在上述功能中获取到服务器返回的信息解析后就需要把这些信息存储起来,本系统是采用MySQL数据库来存储这些信息。三、系统层次模块图本系统总的结构模块包括:用户微博查看、用户粉丝查看、用户关注查看,每个模块下面又包括具体的某些功能,详细的系统模块功能如图2.1所示:图2.1系统层次模块图第二节 系统性能要求本系统的性能要求如下: 安全性。该系统涉及到用户的个人信息,所以要求该系统具备较强的安全性,对用户的信息进行保护。 稳定性。系统应该在一般情况下稳定运行。第三节 运行环境本系统对运行环境的要求如下: 硬件环境: CPU:Intel(R) Core(TM)2 1.73GHz 内存:2G 硬盘:100G 显卡:128MB独立显卡 软件环境: 操作系统:Windows XP、Windows 7、Windows 8 数据库:MySQL5.5 相关应用软件:JDK、Eclipse 第四节 系统用例图系统用例图11如图2.2所示:图2.2 系统用例图第五节 本章小结在本章中,主要是在开发网络舆情数据采集系统之前对该系统进行了需求分析,其中主要介绍了该系统的开发目标、功能需求、系统的性能要求、运行环境、系统的层次结构、系统的用例图等。当我们做好系统的需求分析后,就能对该系统做总体设计了。第三章 系统设计软件的需求分析做好后,就可以根据用户需求分析阶段得到的目标系统的逻辑模型确定一个合理的软件系统的体系结构。包括划分组成系统的模块,模块间的调用关系及模块间的接口关系,软件系统所用的数据结构或者数据库结构。在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计12中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。第一节 系统结构分析目前企业开发软件主要采用两种模式:B/S模式和C/S模式。B/S模式即为浏览器/服务器(Browser/Server)模式,这种模式的优点体现在平台稳定,业务扩展、系统升级简单方便,开发成本低廉等。C/S模式即为客户端/服务器(Client/Server)模式,这种模式的优点体现在具有强壮的数据操纵和事务处理能力、数据的完全性和完整性约束等。根据B/S和C/S模式的各自特点,并结合该系统的特点(该系统主要面向新浪微博,从新浪服务器获取数据来处理),因此选择C/S模式比较合适。一、系统结构图本系统的结构图如图3.1所示:图3.1 系统结构图第二节 系统功能模块分析一、系统模块设计系统模块设计如表3.1所示: 表3.1 系统模块设计表功能名称输入项输出项执行方式功能描述查看微博用户输入的微博用户昵称该用户的所有微博后台运行查看指定用户的所有微博信息查看粉丝用户输入的微博用户昵称该用户的所有粉丝后台运行查看指定用户的所有粉丝信息查看关注用户输入的微博用户昵称该用户的所有关注后台运行查看指定用户的所有关注信息查看评论用户选择的微博id这条微博的所有评论后台运行查看指定微博的所有评论信息查看转发用户选择的微博id这条微博的所有转发后台运行查看指定微博的所有转发信息二、各子功能模块分析网络舆情数据采集系统涉及到微博和用户两个实体:微博和用户。在确立了系统的总体功能后,便可以设计各个子模块的功能。 系统根据用户昵称查出用户微博列表后,还可以查看每一条微博的评论和转发信息。微博模块的功能模块如图3.2所示:图3.2 微博子模块功能图 系统根据用户昵称查出用户粉丝、关注列表,或者搜索用户后,可以查询每一个人微博用户的微博信息。用户子模块的功能如图3.3所示:图3.3 用户子模块功能图第三节 系统数据库设计一、系统数据库对象网络舆情数据采集系统主要涉及的对象有:微博、用户、评论、转发。那么,该系统的数据库13对象就可以主要分为:微博表、用户表、关系表、评论表、转发表。该系统的数据库表设计如表3.2所示:表3.2 系统数据库对象表名称类型说明User基本表存储微博用户的基本信息Weibo基本表存储微博的基本信息Friendship基本表存储微博用户之间的关系信息(关注)Comment基本表存储微博的评论信息Repost基本表存储微博的转发信息二、系统数据表网络舆情数据系统主要有5张表:微博表、用户表、关系表、评论表和转发表14,每张表的具体字段如下: 微博表,用来保存新浪微博的微博信息。包含微博id、微博内容、发布时间等字段,其中主键是微博id,user_id是关联用户表的外键。微博表的详细设计表如表3.3所示:表3.3 微博表详细字段表字段列名字段类型字段大小字段说明idvarchar50微博idmidvarchar50微博MIDtextvarchar5000微博内容createdAtvarchar100创建时间repostsCountint转发数commentsCountint评论数user_idvarchar50发布者id 用户表,用来保存微博的用户信息。包含用户id、用户昵称、用户注册时间等字段,其中用户id是主键。用户表的详细设计表如表3.4所示:表3.4 用户表详细字段表字段列名字段类型字段大小字段说明idvarchar50用户idscreenNamevarchar50用户昵称provinceint省份编码(参考省份编码表)cityint城市编码(参考城市编码表)locationvarchar100地址descriptionvarchar500个人描述urlvarchar100 用户博客地址profileImageUrlvarchar1000自定义图像userDomainvarchar100 用户个性化URLgendervarchar5性别,m- 男,f- 女,n- 未知followersCountint粉丝数friendsCountint关注数statusesCountint微博数favouritesCountint收藏数biFollowersCountint互粉数createdAtvarchar100创建时间 关系表,用来保存微博用户之间的关注信息。里面主要包含两个用户的id,主键是两个id的组合键,两个id分别关联到用户表,关系表的详细设计表如表3.5所示:表3.5 关系表详细字段表字段列名字段类型字段大小字段说明user_idvarchar50 A用户idf_user_idvarchar50B用户id(A关注B) 评论表,用来保存某一条微博的评论信息。里面主要包含评论id、评论内容、评论时间等字段,其中评论id是主键,微博id关联到微博表,用户id关联到用户表,评论表的详细设计表如表3.6所示:表3.6 评论表详细字段表字段列名字段类型字段大小字段说明idvarchar50评论idtextvarchar500评论内容createdAtvarchar100评论时间weibo_idvarchar50被评论的微博iduser_idvarchar50评论者的用户id 转发表,用来保存某一条微博的转发信息。里面主要包含转发id、转发内容、转发时间等字段,其中转发id是主键,微博id关联到微博表,用户id关联到用户表,转发表的详细设计表如表3.7所示:表3.7 转发表详细字段表字段列名字段类型字段大小字段说明idvarchar50转发微博idmidvarchar50转发微博MIDtextvarchar5000转发微博内容createdAtvarchar100转发时间weibo_idvarchar50被转发的微博iduser_idvarchar50转发者id第四节 系统各模块设计既然分析好了各功能模块的具体功能,又设计好了数据库,接下来我们就来做每个功能模块的详细设计。一、启动模块的设计 Home.java是该系统的启动界面,也是系统的主界面,该类主要定义了界面的组件,以及生成界面的方法,具体的类图如图3.5所示:图3.5 主界面类图 User_.java定义了一个用户对象,代表一个注册的新浪微博用户。里面包含了用户id、用户昵称、用户性别、用户描述、用户微博数、粉丝数、关注数、注册时间等信息。具体的用户信息见图3.6:图3.6 用户对象类图二、查看微博的设计 Status_.java定义了一个微博对象,包括微博id、微博内容、发布时间、评论数、转发数、发布者信息等。具体结构见图3.7:图3.7 微博对象类图 WeiboGrab.java是一个抓取微博类,该类主要用来调用新浪API15获取指定用户的微博列表,具体的类图见图3.8:图3.8 抓取微博信息类类图 WeiboTable.java是用来处理微博数据,把这些数据生成列表视图,并带有分页功能,里面还带有对Java列表界面的修改,生成美观的外表。具体的类图如图3.9所示:图3.9 微博列表生成类类图三、查看粉丝的设计 FollowerTable.java是用来处理粉丝数据,把这些数据生成列表视图,并带有分页功能,里面还带有对Java列表界面的修改,生成美观的外表。具体的类图如图3.10所示:图3.10 粉丝列表生成类类图 FollowerGrab.java是一个抓取粉丝类,该类主要用来调用新浪API获取指定用户的粉丝列表,具体的类图见图3.11:图3.11 粉丝抓取类类图 SearchFollower.java是一个搜索粉丝的类,该类主要用来搜索某个用户的所有粉丝中某个具体的粉丝,具体的类图见图3.12:图3.12 粉丝搜索类四、查看关注的设计 FriendTable.java是用来处理关注数据,把这些数据生成列表视图,并带有分页功能,里面还带有对Java列表界面的修改,生成美观的外表。具体的类图如图3.13所示:图3.13 关注列表生成类类图 FriendGrab.java是一个抓取关注类,该类主要用来调用新浪API获取指定用户的关注列表,具体的类图见图3.14:图3.14 关注抓取类类图 SearchFriend.java是一个搜索关注的类,该类主要用来搜索某个用户的所有关注中某个具体的关注,具体的类图见图3.15:图3.15 关注搜索类五、查看评论的设计 CommentTable.java是用来处理评论数据,把这些数据生成列表视图,并带有分页功能,里面还带有对Java列表界面的修改,生成美观的外表。具体的类图如图3.16所示:图3.16 评论列表生成类类图 CommentGrab.java是一个抓取微博的评论列表类,该类主要用来调用新浪API获取某条指定微博的所有评论列表,具体的类图见图3.17:图3.17 评论抓取类类图 CommentView.java是微博的评论显示界面,他用来把某条具体微博的所有评论信息分页显,里面还带有对Java列表界面的修改,生成美观的外表。具体的类图如图3.18所示:图 3.18 评论列表显示类类图六、查看转发的设计 RepostTable.java是用来处理转发数据,把这些数据生成列表视图,并带有分页功能,里面还带有对Java列表界面的修改,生成美观的外表。具体的类图如图3.19所示:图3.19 转发列表生成类类图 RepostGrab.java是一个抓取微博转发情况的类,该类主要用来调用新浪API获取指定微博的转发列表,具体的类图见图3.20:图3.20 转发抓取类类图 RepostView.java是微博的转发显示界面,他用来把某条具体微博的所有转发信息分页显,里面还带有对Java列表界面的修改,生成美观的外表。具体的类图如图3.21所示:图 3.21 转发列表显示类类图第五节 本章小结在本章中,是在网络舆情数据采集系统的需求分析基础上,对该系统做了一个系统设计,包括总体设计和详细设计,确定了一个合理的软件系统的体系结构,并设计了体系结构下各模块的具体数据结构。其中主要介绍了该系统的系统结构、系统模块划分、各自模块具体功能,以及该系统数据库表的确立,还设计好了查看微博、查看粉丝、查看关注、查看评论、查看转发模块的具体数据结构,当我们做好系统设计工作后,接下就该对系统做具体实现了。第四章 系统实现在前面阶段已经确定好了各模块的数据结构、算法分析和模块实现等方面的设计要求,现在就可以开始做编码工作了,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。 第一节 开发环境的搭建在开始做具体的编码工作之前,我们必须的搭建好开发环境,本系统的开发环境比较简单,只需要搭建Java开发环境、数据库开发环境就行了。一、Java开发环境的搭建1、JDK环境变量的配置安装好JDK后,我们必须得进行环境变量的配置,其配置步骤如下: 编辑Path变量,在变量值中加入值:D:programe filesJavajsk1.7.0_09bin。一般把这个值加到原有值得最前面并用分号隔开,这样配置后你在任何路径下编写的Java程序都能调用到jdk的javac和java等命令。效果图如图4.1所示:图4.1 配置path变量图编辑classpath环境变量,其中设置值为:.;D:program filesJavajdk1.7.0_09libdt.jar;D:program filesJavajdk1.7.0_09libtools.jar。效果图如图4.2所示:图4.2 配置classpath变量图 测试是否配置成功,打开命令提示符,然后输入javac/java version等命令,回车正常输出信息就表示配置成功。效果如图4.3所示:图4.3 测试是否配置成功图2、Eclipse的安装 配置好JDK环境变量后,我们还需要一款集成开发环境工具,方便我们快捷高效的开发,Eclipse就是这样一款软件,目前,Eclipse是大多数软件开发企业的首选开发工具。Eclipse的安装非常方便,我们只需要去官网下载压缩包,然后解压运行即可。Eclipse的软件界面如图4.4所示:图4.4 eclipse的开发界面二、数据库环境的搭建安装数据库之前得先去MySQL官网下载安装文件,然后安装,安装过程中得注意自己设置的密码和端口号,MySQL服务器默认的端口号是3306,我设置的root用户密码是123456。数据库安装好之后还需要安装一款图形界面的数据库管理工具,本人推荐使用Navicat,Navicat的应用界面如图4.5所示:图4.5 navicat应用界面第二节 各功能模块的具体实现一、授权认证的实现 注册应用。到新浪微博开放平台去注册并创建一个应用,地址是:/development。新浪官方会给每一个应用一个专属的App Key和App Secret。我事先已经注册了应用并获得了App Key和App Secret,如图4.6所示:图4.6 应用基本信息 下载SDK。到新浪官方下载各种开发语言对应的SDK版本,下载地址:/wiki/SDK。我是用Java语言开发的应用,所以下载的是Java版本的SDK。 填写配置文件。把下载得SDK导入到项目中去,找到perties文件,打开并填写好其中的client_ID、client_SERCRET和redirect_URI三个参数,他们分别填写你的应用的App Key、App Secret和回调地址。代码如下:client_ID=3002009818 client_SERCRET=a6a0f2f9883151611365504c45e8a2a5redirect_URI=/ 获取code参数。运行OAuth4Code.java类,获取code,即用户授权登陆后,地址栏上出现的code。这里需要注意一下,我们需要在原代码上稍加修改,后则运行会报错,修改后的代码如下:Oauth oauth = new Oauth();BareBonesBrowserLaunch.openURL(oauth.authorize(code);System.out.println(oauth.authorize(code);运行代码后会弹出一个浏览器网页:/?code=*。记录下网址中的code=后的代码。 通过code换取access_token。获取到code后,接下来把code复制到控制台中,然后点击Enter键,会输入一些信息,记录下其中的access_token。获取到access_token后,表示我们的应用已经授权成功,我们就可以通过access_token来访问新浪微博API的接口。二、启动模块的实现 启动模块主要就

温馨提示

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

评论

0/150

提交评论