网络舆情数据采集系统开发论文.docx
《网络舆情数据采集系统开发论文.docx》由会员分享,可在线阅读,更多相关《网络舆情数据采集系统开发论文.docx(70页珍藏版)》请在冰豆网上搜索。
![网络舆情数据采集系统开发论文.docx](https://file1.bdocx.com/fileroot1/2023-4/20/179be097-5a3f-4c0e-997b-7f2a370b1007/179be097-5a3f-4c0e-997b-7f2a370b10071.gif)
网络舆情数据采集系统开发论文
编号:
审定成绩:
重庆邮电大学
毕业设计(论文)
设计(论文)题目:
网络舆情数据采集系统开发
学院名称:
计算机科学与技术学院
学生姓名:
张现
专业:
信息安全
班级:
0440901
学号:
2009211882
指导教师:
张璞
答辩组负责人:
何利
填表时间:
2013年6月
重庆邮电大学教务处制
摘要
互联网发展至今,传统媒体已经日渐落寞,作为新生代媒体,网络已经在这一领域占据了越来越重要的地位,而且这种趋势还在上涨。
现今,越来越多的人通过互联网来表达自己对社会现状的态度和政治诉求等等,从互联网这一自由开放的媒体中了解民生,开展网络舆情信息采集和分析,已经各级政府部门目前面临的重要课题。
互联网作为新生代媒体,其发展势头迅猛,各大门户网站纷纷进军互联网领域抢占市场,竞争十分激烈,而其中新浪在这场竞争中表现得相当出色,新浪微博成为民众信息分享平台的首选。
本论文就设计了一个专门针对新浪微博的舆情数据采集系统,它包含如下几个功能:
查询指定用户的微博信息、查询指定微博的评论信息和转发信息、查询指定用户的所有粉丝和搜索该用户的指定粉丝、查询指定用户的所有关注和搜索该用户的指定关注以及将上述信息保存到本地数据库中,供以后对数据进行分析。
该系统是基于新浪官方提供的API来开发的,采用Java和MySQL实现软件的开发,Java实现软件的界面和数据展示,MySQL实现数据的存储。
工作时,它根据用户输入的信息,采用多线程方式去采集用户数据,主界面弹出等待提示框,给用户提供良好的用户体验。
在展示数据的时候,考虑到微博数据的庞大,该系统采用了分页技术来展示数据,而且对界面进行了美化,给用户提供一个美观的界面浏览。
【关键词】网络舆情新浪微博JavaMySQL微博API
ABSTRACT
SincethedevelopmentofInternet,traditionalmediahasalreadylonely,asanewgenerationofmedia,thenetworkhasbecomemoreandmoreimportantinthisfield,andthetrendisstillrising.Nowadays,moreandmorepeoplethroughtheInternettoexpressthemselvesonthesocialstatusoftheattitudeandpoliticalappealandsoon,tounderstandthepeople'slivelihoodfromtheInternetwhichisafreeandopenmedia,networkpublicopinioninformationcollectionandanalysis,animportantissuehasbeenatalllevelsofgovernmentdepartmentsarecurrentlyfacing.
Internetasanewgenerationofmedia,themomentumofrapiddevelopment,themajorportalshavetoenterthefieldofInternettoseizethemarket,competitionisveryfierce,andSinainthiscompetitionperformedverywell,Sinamicro-blogpublicinformationsharingplatformofchoice.ThisthesisistodesignaspecificSinamicro-blogpublicopiniondataacquisitionsystem,whichincludesthefollowingfunctions:
queryspecifiestheuser'smicro-blog,micro-bloginformationqueryspecifiesthecommentinformationandforwardinginformation,queryspecifiestheuserallthefansandsearchtheuserspecifiedfans,queryspecifiesalloftheuser'sattentionandsearchthespecifieduserattentionandtheinformationissavedtoalocaldatabase,forlaterdataanalysis.
ThesystemisbasedonAPItoSinaofficialdevelopment,developedusingJavaandMySQLsoftware,Javasoftwareinterfaceanddatadisplay,MySQLdatastorage.Whenworking,itaccordingtotheinputinformationofauser,usingmultiplethreadstocollectuserdata,themaininterfacepopsupwaitforapromptbox,toprovideuserswithagooduserexperience.Inthedisplayofthedatawhenthemicro-blog,consideringthehugedata,thesystemusesthepagingtechniquetodisplaydata,andtheinterfaceisbeautiful,toprovideuserswithabeautifulinterfacetobrowse.
【Keywords】NetworkpublicopinionSinamicro-blogJavaMySQLMicro-blogAPI
目录
前言1
第一章系统相关技术概述2
第一节Java技术概述2
一、Java简要介绍2
二、GUI图形用户界面2
三、多线程3
四、JDBC数据库连接3
第二节新浪微博JavaSDK4
一、微博JavaSDK概述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由SunMicrosystems公司于1995年5月推出的一门面向对象的程序设计语言,用它编写的应用程序具有跨平台的特征。
Java框架下包含三大平台:
JavaSE、JavaEE和JavaME。
JavaSE是Java平台标准版的简称,用于开发服务器、桌面和嵌入式设备中的Java应用程序;JavaEE一种用来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构,JavaEE的基础是JavaSE;JavaME是一个用来为移动平台提供的基于Java环境开发的技术规范的集合。
Java技术凭借着它的高效性、安全性、通用性和平台移植性,目前被广泛应用于个人PC、移动电话、科学超级计算机、游戏控制台和互联网等领域。
在全球云计算和移动互联网的产业环境下,Java[4]更具备了显著优势和广阔前景。
二、GUI图形用户界面
随着互联网的飞速发展,Java技术也得到了越来越广泛的应用。
而无论我们是采用JavaSE、JavaEE还是JavaME开发,图形用户界面都是我们不能逃避的问题。
现在的用户总希望我们开发的软件功能丰富强大而又操作简单,这就需要开发者注重界面的友好性,GUI就成了Java开发者不可或缺的重要课题。
Java使用AWT和Swing类库来完成图形用户界面的编程,其中AWT的全称是抽象窗口工具集(AbstractWindowToolkit),它是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数据库连接
JDBC[6]是Java连接数据库的一项技术,它是用来执行SQL语句的JavaAPI,它的全称是JavaDatabaseConnectivity。
通过使用JDBCAPI,Java程序可以非常方便的操作各种主流数据库,由于Java语言的跨平台特性,所以使用JDBCAPI所编写的程序不仅可以实现跨数据库,还可以跨平台,具有非常优秀的可移植性。
JDBC连接数据库的步骤如下(以MySQL数据库为例):
加载JDBC驱动程序
Class.forName(com.mysql.jdbc.Driver);
创建数据库连接
Stringurl="jdbc:
mysql:
//127.0.0.1:
3306/weibo_sina";
Stringuser="root";
Stringpassword="123456";
Connectionct=null;
ct=DriverManager.getConnection(url,user,password);
预编译并执行SQL语句
PreparedStatementps=null;
ps=ct.prepareStatement(sql);
ps.executeUpdate();
关闭JDBC对象
publicvoidclose(){
try{
if(rs!
=null)
rs.close();
if(ps!
=null)
ps.close();
if(ct!
=null)
ct.close();
}catch(Exceptione){
e.printStackTrace();
}
}
本论文作品主要通过MySQL数据库来存储获取的微博、用户等信息。
第二节新浪微博JavaSDK
一、微博JavaSDK概述
微博JavaSDK是新浪为Java开发者提供的专门用于访问新浪微博的接口,通过微博JavaSDK,第三方微博应用可以很方便的访问微博提供的API接口,获取到需要的信息。
微博JavaSDK的整体架构包含如下几个:
src:
weibo4j封装了大部分接口,包括授权,timeline,用户等常见接口
weibo4j.http包含了https请求的封装
weibo4j.model包含了user,status等实体类
weibo4j.org.json完成json解析的各种方法
weibo4j.util包含了请求api接口时候所需要的工具类
examples:
里面包含了封装接口的各个测试demo
二、授权认证
要调用新浪微博SDK就需要先完成授权认证,只有授权的应用才有资格去访问微博的API。
授权认证[7]的步骤如下:
注册应用。
要调用新浪微博API,就需要先到新浪微博开放平台去注册并创建一个应用,地址是:
Key和AppSecret。
Key跟Secret的使用方式跟其他一些协议中的公钥私钥的方案相类似,你可以使用你所熟悉的编程语言将key和secret结合,为你发出的每个请求添加签名,以此来向新浪微博开放平台表明自己身份的合法性。
填写配置文件。
到config.properties文件中填写好client_ID、client_SERCRET和redirect_URI三个参数,他们分别填写你的应用的AppKey、AppSecret和回调地址。
获取code参数。
运行OAUTH4CODE类,获取code,即用户授权登陆后,地址栏上出现的code。
通过code换取access_token。
获取到access_token后,表示我们的应用已经授权成功,我们就可以通过access_token来访问新浪微博API的接口。
第三节MySQL技术概述
一、MySQL概述
MySQL[8]是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,现已被Oracle公司收购。
MySQL与目前市场上的其他大型数据库(Oracle、DB2、SQLServer)相比,存在功能小、规模有限等不足。
但这些不足丝毫没有减少它的受欢迎度,相反,这些不足反而成就了它小巧、查询快捷、健壮易用的优点,让MySQL成为了目前大多数中小型企业的首选,由于MySQL是一款开源软件,这个可以大大降低企业的开销成本,这一特点也是MySQL如此受欢迎的原因之一。
二、MySQL的特性
MySQL作为一个小型关系型数据库管理系统,它有如下特性来让用户选择它作为自己应用的数据库:
使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性;
支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统 ;
为多种编程语言提供了API。
这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等;
支持多线程,充分利用CPU资源;
优化的SQL查询算法,有效地提高查询速度;
既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名 ;
提供TCP/IP、ODBC和JDBC等多种数据库连接途径 ;
提供用于管理、检查、优化数据库操作的管理工具;
可以处理拥有上千万条记录的大型数据库;
第四节本章小结
在本章中,主要对网络舆情数据采集系统开发涉及到的技术理论知识进行了基本介绍,其中主要介绍了Java中的GUI图形用户界面的实现机制,JDBC数据库连接原理和步骤、Java多线程的原理和实现方式、新浪微博JavaSDK的概述和授权步骤,最后对MySQL数据库进行了简要的介绍。
第二章需求分析
需求分析工作是软件工程[9]生命周期中的第一步,也是起决定性的一步,在需求分析阶段我们需要全面了解整个系统的功能和性能方面的要求,为软件设计打下坚实的基础。
需求分析阶段的目标主要有:
获得目标系统的物理模型,了解目标系统的运行原理及机制;抽象出目标系统的逻辑模型,对物理模型进行筛选,得到与软件系统有关的部分;建立目标系统的逻辑模型,得出数据流图和数据字典;补充目标系统的逻辑模型,对目标系统的用户界面、至今尚未考虑的细节进行说明。
第一节系统功能需求
一、系统目标
网络舆情很客观的反应民众的需求与政治态度,政府迫切需要了解舆情,正式基于这样的需求,本系统应运而生,完成微博信息的收集并实现数据的展示功能,为后面的舆情分析打下基础。
二、功能分析
开发软件首先做的是开发过程中最主要的就是系统的需求分析[10],需求分析同时也是软件生存周期中关键的一步。
根据软件工程学中开发软件的要求,对系统全部功能和相关的技术进行具体的分析,分析时采用结构化的分析方法,自顶向下、逐层分解问题。
结合政府需求和实际的具体分析,要求本系统具有以下功能:
查看用户的微博
根据用户输入的微博用户昵称关键字,系统单开一个线程向新浪服务器发出用户微博查询请求,系统解析服务器返回的结果,然后系统将返回的微博信息分页显示。
查看用户的粉丝
根据用户输入的微博用户昵称关键字,系统单开一个线程向新浪服务器发出用户粉丝查询请求,系统解析服务器返回的结果,然后系统将返回的粉丝信息分页显示。
搜索指定用户粉丝
在查看用户粉丝的时候,有些用户粉丝可能特别多,分页后就会存在很多页,那么就会很难找某个具体的粉丝。
鉴于这种情况,本系统就特定做了一个粉丝搜索功能,搜索出包含用户输入的关键字的粉丝展示出来。
查看用户的关注
根据用户输入的微博用户昵称关键字,系统单开一个线程向新浪服务器发出用户关注查询请求,系统解析服务器返回的结果,然后系统将返回的关注信息分页显示。
搜索指定用户关注
在查看用户关注的时候,有些用户关注的人可能特别多,分页后就会存在很多页,那么就会很难找某个具体的关注。
鉴于这种情况,本系统就特定做了一个关注搜索功能,搜索出包含用户输入的关键字的关注展示出来。
查看微博的转发情况
根据用户点击的微博id,系统单开一个线程向新浪服务器发出微博转发情况查询请求,系统解析服务器返回的结果,然后系统将返回的微博转发信息分页显示。
查看微博的评论情况
根据用户点击的微博id,系统单开一个线程向新浪服务器发出微博评论情况查询请求,系统解析服务器返回的结果,然后系统将返回的微博评论信息分页显示。
存储微博、用户、关系、评论、转发信息
在上述功能中获取到服务器返回的信息解析后就需要把这些信息存储起来,本系统是采用MySQL数据库来存储这些信息。
三、系统层次模块图
本系统总的结构模块包括:
用户微博查看、用户粉丝查看、用户关注查看,每个模块下面又包括具体的某些功能,详细的系统模块功能如图2.1所示:
图2.1系统层次