收藏 分销(赏)

基于JAVA的社交网络的信息采集系统的研究与设计.docx

上传人:快乐****生活 文档编号:10598467 上传时间:2025-06-04 格式:DOCX 页数:29 大小:513.79KB
下载 相关 举报
基于JAVA的社交网络的信息采集系统的研究与设计.docx_第1页
第1页 / 共29页
基于JAVA的社交网络的信息采集系统的研究与设计.docx_第2页
第2页 / 共29页
点击查看更多>>
资源描述
本科毕业设计(论文) 基于JAVA社交网络信息采集系统研究及设计 学院(系): 专业班级: 学生姓名: 指导教师: 22 / 29 学位论文原创性声明 本人郑重声明:所呈交论文是本人在导师指导下独立进行研究所取得研究成果。除了文中特别加以标注引用内容外,本论文不包括任何其他个人或集体已经发表或撰写成果作品。本人完全意识到本声明法律后果由本人承担。 作者签名: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保障、使用学位论文规定,同意学校保留并向有关学位论文管理部门或机构送交论文复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士论文评选机构将本学位论文全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 本学位论文属于 1、保密囗,在 年解密后适用本授权书 2、不保密囗 。 (请在以上相应方框内打“√”) 作者签名: 年 月 日 导师签名: 年 月 日 摘 要 本文借助开发平台Eclipse针对社交网络新浪微博开发了一个信息采集器,能够实现对新浪微博信息采集,所得结果对于新浪微博开发具有重要指导意义。 论文主要研究了社交网络信息采集原理,并以新浪微博为研究对象,借助JAVA编程软件实现对微博信息采集。本论文主要工作有以下几个方面:首先是利用微博系统JAVA SDK获取数据,该技术通过调用微博平台提供API来获取数据。这部分工作需要利用微博系统JAVA SDK获取数据工作流程,调用API需要通过用户身份鉴权。目前使用OAuth鉴权,其优点是数据准确快捷,很少因微博平台变化而变化,但缺点是接口提供商限制因素多且不稳定。其次通过JAVA编程设计一个良好界面,调用API接口实现对授权用户信息采集,通过输入一个关键词,在授权用户好友微博圈里进行匹配,将出现该关键词好友微博返回到txt文件中进行保存,同时将历史采集记录保存下来,实现对授权用户好友信息主题采集。 研究结果表明,通过调用API接口获取用户微博数据这种方式实时有效,能够满足我们对新浪微博授权用户微博实时信息主题采集。 本文特色在于通过调用API接口实现对新浪微博信息主题采集快速便捷,而且设计了一套完善显示及保存方案,能够对新浪微博后续研究提供数据。 关键词:社交网络,新浪微博,API,信息采集 Abstract This paper is mainly to develop an information collector, which can collect the information of Sina micro-blogging by the use of Eclipse. The results of this paper have important guiding significance for the further study of Sina micro-blogging. In this paper, we mainly introduce the principle of social networks. On the basis of this, we take Sina micro-blogging as our research object, using JAVA programming software for the information collection of it. The main work of this paper has the following aspects: First, we introduce the principle of JAVA SDK, which is provided by the Sina micro-blogging system to obtain data. The method to get the data by SDK is to use the API interfaces of Sina micro-blogging. This part of the work requires the use of JAVA SDK to get the access to the API. Only when we have the access to the API of Sina micro-blogging, we can get through the identity authentication of Sina microblogging. Currently Sina micro-blogging use the OAuth 2.0 protocol for the identity authentication. The advantage of OAuth2.0 is fast and accurate, which rarely changes due to changes of the micro-blogging platform. But the drawback is that there are too many limiting factors for API. Then we use the JAVA programming software Eclipse to design a friendly interface to realize the information collection of Sina micro-blogging. By entering a keyword in the input area, the system we designed can match the keyword with Sina micro-blogging.Once the keyword appears in the micro-blogging, the system will collect the information of the Sina micro-blogging .By the same time, the system will save the information to the data save the recorded history of the collection, to achieve the authorized subject collection for the Sina micro-blogging. The research results show that by using the API interface to get data this way, we can realize the real-time information collection of Sina micro-blogging. The characteristic of this paper is to use the API to realize the subject collection of Sina micro-blogging, quick and effective, which can save a lot of time. In addition to this, I design a set of friendly interface, which can display and save the information effectively and provide data for the further study of Sina micro-blogging . Key Words:social network,Sina micro-blogging,API,information collection 目 录 第1章 绪论 1 1.1 研究背景和意义 1 1.2 国内外研究现状 2 1.3 论文主要工作 3 1.4 论文结构安排 4 第2章 系统相关技术 5 2.1 JAVA技术简介 5 2.2 新浪微博开发平台 5 2.2.1 微博JAVA SDK 5 2.2.2 微博应用创建 6 2.2.3 OAuth2.0授权认证 7 2.2.4 微博内容获取 9 2.3 本章小结 9 第3章 信息采集系统设计及实现 10 3.1 系统总体设计 10 3.2 系统各模块实现 11 3.2.1 授权认证实现 11 3.2.2 启动模块实现 13 3.2.3 微博内容获取 14 3.3 系统效果显示 15 3.3.1 主页面效果显示 15 3.3.2 采集信息效果显示 16 3.4 本章小结 19 第4章 总结及展望 20 4.1 总结 20 4.2 前景及展望 20 参考文献 21 致 谢 22 第1章 绪论 1.1 研究背景和意义 随着网络技术发展,互联网跨入到web2.0[1]时代。在web2.0时代中,整个互联网平台不停扩展着人们之间社会关系,从而促使多种社交网络平台出现,产生了多种新颖交互模式和途径。社交网络是一种在线交互媒体,该媒体最显著特点为具有强大信息传播能力及影响力。近些年来,社交网络迅速发展。在国外,以 FaceBook,Twitter为代表,在国内,以新浪微博,腾讯微博,QQ空间,百度贴吧以及人人网为代表。这些社交网络平台向人们提供社会网络服务,使得用户能够方便快捷地通过互联网自由分享自己个人信息,获取和传播其他用户信息。如此一来,整个社交人群交互信息和背景信息等形成一张社会网。 国内社交媒体中,近年来以微博发展最为迅速,用户群规模增长最快。根据相关统计,国内2014年1月份社会化媒体排行榜如表1.1所示。由1.1可以看出,有三大微博平台跻身社会化媒体分享榜前十,微博平台已经成为社会化媒体中最受欢迎平台,其中尤以新浪微博最为火热。在2013年7月《中国互联网络发展状况统计报告》中提到:“截至 2013年6月底,我国微博网民规模为3.31亿,较2012年底增长了2216万,增长7.2%。网民中微博使用率达到了56.0%,较上年底增加了1.3个百分点。2014年4月17日,新浪微博正式登陆纳斯达克,成为全球范围内首家上市中文社交媒体。 表1.1 2014年社会化媒体排行榜 排名 媒体名称 分享百分比 排名 媒体名称 分享百分比 1 新浪微博 17.93% 6 开心网 5.09% 2 QQ空间 16.49% 7 搜狐微博 4.86% 3 微信 16.17% 8 飞信 4.14% 4 腾讯微博 6.40% 9 百度贴吧 3.86% 5 人人网 6.22% 10 QQ好友 3.16% 随着微博爆炸式发展,它逐步成为国内外学者共同关注焦点。微博是一种允许用户用即时更新简短文本(一般信息发布字数在140个以内)并可以公开发布博客形式。微博包含海量数据信息,它允许任何人阅读或者只能由用户选择群组阅读。 目前微博已经成为网民获取信息重要途径之一,微博从满足人们弱关系社交需求上逐渐演变成为大众化舆论平台,越来越多机构及公众人物都通过微博来发布或传播信息。 微博三大特点: (1) 便捷性。微博网站即时通讯功能非常强大,通过QQ和MSN直接书写,在有网络地方,只要有手机就可及时发布微博,更新自己实时信息。类例于一些大突发事件或引起全球关注大事,如果有微博在场,利用各种手段在微博客户端上发表出来,其实时性、现场感以及快捷性,甚至超过所有媒体。 (2) 背对脸。及博客上面对面表演不同,微博上是背对脸交流,就好比你在电脑前打游戏,路过人从你背后看着你怎么玩,而你并不需要主动和背后人交流。可以一点对多点,也可以点对点。当你follow一个自己感兴趣人时,两三天就会上瘾。移动终端提供便利性和多媒体化,使得微博用户体验粘性越来越强。 (3) 原创性。在微博上,140字限制将平民和莎士比亚拉到了同一水平线上,这一点导致大量原创内容爆发性地被生产出来。 微博集成了手机短信、博客及社交网站优点,将消费者从原来单纯信息接收者变成了接收和发布信息完全参及者,从而让社会走进了全民记者时代。各行业、各领域科研人员在社交网络现有基础上,开展了大量及微博相关研究和实践工作。微博流行给原有企业沟通方式造成了前所未有冲击,如何有效地利用微博已成为当前企业界和社会化营销理论重要问题。 现阶段,随着微博网络影响力快速扩大,政府部门、学校、知名企业、社会公众人物均开通了微博。随着公众参及,微博成为了一个强大虚拟社会,微博已经是网络信息重要来源,如何用于快速有效地采集微博信息已经成为一个具有重要应用价值研究。 在各大微博平台飞速发展同时,微博平台也为开发者和研究者提供了良好数据获取方式。Twitter、新浪微博、腾讯微博等微博平台都提供了open API。如今各大微博平台如此风靡,在海量用户数据,关系数据及内容数据环境下,各大微博平台通过open API[2]方式使得大量用户可以在其平台上开发出各式各样应用,提高平台服务质量,同时也为社交网络研究者提供了以网站服务方式对外数据接口,这其中就包括大量数据下载API,为针对微博平台相关研究工作提供了优良数据通道。 目前,尚没有一个系统直接提供了微博数据并进行相关分析。因此需要开展对微博信息采集研究。本文主要工作就是要开发一套基于JAVA新浪微博信息自动釆集程序,为社交网络舆情研究、网民行为分析等系统提供满足个性化服务丰富信息资源。因此,研究及设计新浪微博信息采集系统不仅具有较强现实意义,也具有较强理论研究意义。 1.2 国内外研究现状 目前国内外对社交网络信息采集技术做了很多研究,也编写了很多开源采集框架。国外学者主要是针对网络爬虫技术做出了一系列研究。 Fish[3]系统是最早主题网络蜘蛛模型。它是一个基于客户端实时信息检索系统,它假设相关页面在逻辑上彼此接近,采用深度优先算法搜索相关页面,并用一组关键词和短语判断页面相关性。Hersovici[4]对Fish系统进行了改进,它从一个特定点开始并跟踪相关文本链接,使用向量空间模型来计算页面相似度,根据链接周围文本价值和链接“继承"价值决定优先级及爬行深度。Cho[5]提出了通过先爬行更重要网页使爬行更有效。他讨论了几种评价链接重要性方式,提出了基于“驱动查询”(DrivingQuery)相似度、页面入度(Backlinks)、PageRank和页面位置链接排序方法,并得出结论:PageRank指导爬虫表现最佳。此后,PageRank算法和Kleinberg提出HlTS算法作为两种主要链接分析算法很快被众多研究者用于指导主题爬虫预测URL重要性,目前很多用于URL评价Web分析算法都可以在不同程度上视为这两种算法变体。印度理工学院学者Chakrabarti等[6],利用已分类实例集训练分类器,来衡量页面及主题相似度,并用于指导搜索顺序。Diligenti[7]从相关页面出发,构建“语境图”和分类器,并根据语境图层次预测距离相关页面远近,较近页面较早访问。Estert[8]采用“隧道”技术指导搜索,当搜索精度低于某一预先定义阈值时,则将主题范围增大,搜索未来回报较大链接。Aggarwal[9]将页面内容、页面URL结构抽象为页面特征,并利用它们构建Web概率模型,用于预测链接价值。 目前在国内也有很多学者对社交网络信息采集技术进行研究,很多都是以新浪微博为例。 吴斌杰等[10]提出了基于API信息采集方法,然后设计了一个信息采集系统,能够对新浪微博相关信息进行采集。康捷[11]等人提出了基于新浪微博API及基于页面解析新浪微博数据获取方案。程序逻辑控制API调用方法及频率,获取JSON对象并解析实现高效数据获取。同时将传统网络爬虫结合网页解析技术结合API同时使用,解决了因API接口开放不完善,且因在返回结果数量上限及调用频率方面限制,导致不能有效实现新浪微博数据全面获取问题。郭颖为[12]设计并实现了基于多生产者多消费者模型网页信息采集及存储网络爬行器,采用多线程方式分别对每类结构化数据进行存储。为了进一步提高爬行器效率,文中利用新浪微博API接口对微博用户社交信息进行辅助采集。冯典[13]设计并实现了一种可根据数据种类不同,创建多种爬虫数据采集系统,一方面使用多线程技术大幅提高爬虫效率,另一方面,创造了多AppKey复用机制,突破了新浪对API调用频率限制,保证了爬虫可以连续不间断工作。 1.3 论文主要工作 本文主要工作是研究微博数据抓取方式,并实现对微博授权用户微博信息主题采集,主要工作有: (1) 微博API研究 利用微博系统SDK获取数据,该技术通过调用微博平台提供API来获取数据。这部分工作需要利用微博系统SDK获取数据工作流程,调用API需要通过用户身份鉴权,目前使用OAuth鉴权。其优点是数据准确快捷,很少因微博平台变化而变化,但缺点是接口提供商限制因素多且不稳定。 (2) 系统设计及实现 设计一个良好界面,实现对微博授权用户信息主题采集,并能够对采集信息进行保存以便于后续研究。 1.4 论文结构安排 本论文主要开发了基于windows平台社交网络采集系统,使用新浪微博提供API结合第三方SDK,对新浪微博上用户数据进行采集。 本文分为四章进行阐述。 第一章绪论。介绍论文研究背景及意义,当前课题研究现状,论文主要工作以及结构安排。 第二章系统相关技术概述。对论文所用相关技术进行介绍,重点介绍了JAVAGUI图形界面和多线程以及新浪微博开放平台,详细介绍新浪微博授权过程及API调用流程。 第三章信息采集系统设计及实现。重点阐述新浪微博信息采集方法。首先对系统功能及结构进行分析,然后详细介绍系统总体路线设计。最后对所设计平台进行验证,分析其效果。 第四章总结及展望。此章对整篇文章工作进行了总结,并提出了下一步工作方向。 第2章 系统相关技术 2.1 JAVA技术简介 JAVA由Sun Microsystems公司于1995年5月推出一门面向对象程序设计语言,用它编写应用程序具有跨平台特征。JAVA框架下包含三大平台:JAVASE、JAVAEE和 JAVAME。JAVASE是JAVA平台标准版简称,用于开发服务器、桌面和嵌入式设备中JAVA应用程序;JAVAEE一种用来简化企业解决方案开发、部署和管理相关复杂问题体系结构,JAVAEE基础是JAVASE,JAVAME是一个用来为移动平台提供基于JAVA环境开发技术规范集合。JAVA技术凭借着它高效性、安全性、通用性和平台移植性,目前被广泛应用于个人PC、移动电话、科学超级计算机、游戏控制台和互联网等领域。在全球云计算和移动互联网产业环境下,JAVA更具备了显著优势和广阔前景。本文中主要采用JAVASE进行系统设计。 无论是采用JAVA SE、JAVA EE还是JAVA ME开发,图形用户界面都是不能逃避问题。现在用户总希望开发软件功能丰富强大而又操作简单,这就需要开发者注重界面友好性,GUI就成了JAVA开发者不可或缺重要课题。JAVA使用AWT和Swing类库来完成图形用户界面编程,其中AWT全称是抽象窗口工具集(Abstract Window Toolkit),它是Sun公司最早提供GUI库,这个GUI库提供了一些基本功能,但这个GUI库功能比较有限,所以后来又提供了Swing库[15]。JAVA开发者通过使用AWT和Swing提供组件库,程序只需创建所需图形组件,并用合适布局管理器来组织这些组件按照特定方式排列,就可以开发出非常完美用户界面。如果想要实现用户及界面之间交互,开发者还应为程序添加事件监听,让事件处理来完成响应用户动作。本论文作品主要用到了Swing库中JButton、JLable、JTextField、JTable、JScrollPanel、JFrame、JPanel等组件,用到了AWT库中BorderLayout、FlowLayout等布局管理器组件。 2.2 新浪微博开发平台 目前,新浪微博提供了相应API供本系统使用,通过调用这些API,本系统可以获取如微博内容、用户关系、用户信息、用户标签等信息。要使用这些API,需要先创建一个自己应用,然后进行认证,认证完成后即可使用API获取新浪微博数据了。 2.2.1 微博JAVA SDK 微博JAVA SDK是新浪为JAVA开发者提供专门用于访问新浪微博接口,通过微博JAVA SDK,第三方微博应用可以很方便访问微博提供API接口,获取到需要信息。微博JAVA SDK整体架构包含如下几个: src:weibo4j封装了大部分接口,包括授权,timeline,用户等常见接口 weibo4j.http包含了https请求封装 weibo4j.model包含了user,status等实体类 weibo4j.org.json 完成json解析各种方法 weibo4j.util 包含了请求api接口时候所需要工具类 examples:里面包含了封装接口各个测试demo 2.2.2 微博应用创建 新浪微博开放平台[2](Weibo Open Platform)是新浪微博为开发者提供一个开放平台,在此平台上,你只需要建立自己应用,就可以使用新浪微博所提供所有功能。而用户只需要对你应用进行授权,即可使用你应用,而你应用也可以访问用户信息了。应用创建流程图如下图所示: 图2.1 新浪微博创建和开发应用流程图 如上图所示,首先使用自己新浪微博账号进行登陆,如果没有话,就要先注册,然后再登陆到新浪微博开放平台。成功登陆以后,首先要填写个人基本信息,因为如果此应用上线运营,需要保证此应用合法性。填写了个人信息后,就可以获得开发者身份,这时就可以创建应用了。创建应用时,除了填写应用基本信息,包括名称、用途、应用网址以外,最重要是应用类型。新浪微博开放平台提供了三种类型应用,这三种应用特征如下表所示: 表2.1 不同种类应用及其特征 网站接入类应用 网站接入类应用是新浪微博针对第三方网站提供社会化网站接入网络接入方案。接入类应用可以让开发者创建网站支持用户使用微博账号登录,这样可以使用户更方便浏览网站上内容,以更好推广网站。 站内应用 由于新浪用户量巨大,接触到站内应用人数量很大,便于大面积提高应用热度。站内应用可以优先使用新浪微博通知、邀请接口,另外站内应用比其他种类应用具有更高优先权,在新浪官方应用广场上将获得更多推荐机会,而且在同等条件下,测拭期间站内应用将比其他应用得到优先推荐。 移动应用 移动应用类可以满足用户使用手机、平板电脑平台分享信息需求。 从上表可以看出,为了获取新浪微博中内容,本系统采用了站内应用方式创建应用,这是为了获得更高权限,以获得更高API调用频率。另外,为了能以更高频率调用API,也希望提供给更多人使用,可以使用更多账号来访问API,这也是本系统创建一个站内应用原因之一。创建完站内应用后,应用将会获得一个App Key和一个Secret Key,这两个Key是以后会用到。其中App Key是应用在开放平台中身份标志,每次应用要调用API时,都需要提供App Key和使用人账号,这样方便新浪统计某个应用使用频率,这样既能保证某个应用不能频繁调用API,避免出现恶意攻击新浪事件,另一方面,新浪也可以通过使用频率来进行热门应用推荐。而App Secret是新浪微博分配给某个应用密码,这是为了保证其真实性,这个是唯一,这样可以防止其他应用冒充某个热门应用。 2.2.3 OAuth2.0授权认证 OAuth协议[16]全称是开放式认证协议,该协议为用户资源授权提供了一个安全、开放而又简易标准。及以往授权方式不同之处是OAuth授权不会使第三方触及到用户用户名和密码等敏感信息。即第三方无需使用用户用户名和密码就可以申请获得该用户授权资源。Access token(访问令牌)是OAuth协议核心,它代表是服务器端授权给第三方应用程序访问用户个人私有信息一个标识,通常是以一组字符串形式返回给第三方应用程序,该字符串中标示了访问用户私有信息范围、访问时间段等信息。 新浪微博为了保护用户隐私,对于应用所有访问用户行为,都需要用户同意,而同意方式就是需要用户自己输入账户信息,包括账号和密码,然后点击“同意”,新浪微博会自动给应用一个通行证,此时应用才能提取用户信息。目前用户身份鉴定有两个版本,一个是OAuthl.0,另一个是OAuth2.0,目前新浪微博对两个版本都进行支持,但是从2013年1月1日起,就只支持OAuth2.0,所以为了使本系统保持连续性,本系统使用OAiith2.0认证机制。相比于OAuthl.0,OAulh2.0使用更加方便和安全,它也是未来最主要用户身份验证和授权方式。下图是OAuth2.0授权流程[17]: 图2.2 新浪OAuth2.0认证流程 新浪微博提供最新JAVA SDK版本是Weibo4j oauth2.0 beta 2.1.1,它是一款基于新浪微博开放平台[18]API(V2)接口支持OAuth2.0授权认证方式JAVA SDK,第三方开发者可以通过这个SDK开发自己Application。开发者首先需要拥有一个平台账号,在调用API接口采集数据之前需要进行相关配置和认证授权,步骤如下: (1) 用户向新浪微博OAUTH2.0服务提供商申请应用,获得应用专属App Key和App Secret。 (2) 通过新浪微博开放平台获取Request Token。未经服务器授权Request Token中包含了对应密钥、加密算法、发起请求时间戳、随机字符串及版本号信息。 (3) 向新浪微博服务器Request Token授权地址发送请求,服务器同意用户请求,并向其颁发未经用户授权Oauth Token及对应Oauth Secret。 (4) 将上一步得到Token及Secret发给新浪微博用户授权地址申请Request Token授权。 (5) 授权后,用户再向新浪微博Access Token地址发起请求,将上步授权Request Token换取成Access Token。 (6) 服务器同意用户请求,并向其颁发通过新浪微博授权Access Token及对应密钥。 (7) 用户将获得授权Access Token,就可以获得软件对于用户身份资源使用授权。 2.2.4 微博内容获取 这部分是数据获取部分最核心功能,也是实现最难部分。针对微博内容获取,新浪微博提供了多种方法[13],如下表所示: 表2.2 用于微博内容获取API及其功能 API API功能 statuses/friends_timeline 获取当前登陆用户及其所关注用户微博 statuses/user_timeline 获取某个用户最新发表微博列表 statuses/user_timeline/ids 获取用户发表微博ID statuses/show 根据微博ID获取单条微博内容 以上4个方法中前两个是直接获取微博API,后两个可以结合起来获取微博,所以需要选择一种方式来获取微博内容。对于第一个API,它能获取当前登陆用户和其关注者微博,如果使用它话必须要使用所有用户账号和密码进行登陆,显然是不能遍历整个微博网络,所以不能选择该API。对于第二个API,它所需参数为微博用户uid和用户昵称,从实用性角度来说,该API是可用,但是该API—次只能返回最新20条微博。 综上,本系统采用后第二种方式调用API做到遍历授权用户微博信息。这样做好处是,使用statuses/user_timeline/ids可以获取到某用户发表全部微博id号,这样可以保证遍历,能满足本系统要求。 2.3 本章小结 本章主要对基于JAVA新浪微博信息采集所用到关键技术进行介绍,详细介绍了新浪微博开发平台中JAVA SDK、微博应用创建过程、微博授权认证流程以及微博信息获取,是本论文主要技术概述。 第3章 信息采集系统设计及实现 3.1 系统总体设计 经过对新浪微博信息采集系统原理及关键技术研究,本文设计微博信息采集系统主要目标有以下几点: (1) 通过JAVA编程,调用新浪微博官方提供API接口,实现对新浪微博授权用户好友微博信息主题采集,通过输入一个关键字,能够采集到授权用户好友微博中所有及之相关微博。 (2) 将采集到微博用户id和微博内容显示出来并以txt文件形式保存来,同时能够显示保存历史采集记录。 根据上述思想,设计微博信息采集系统总体结构如图3.1所示。系统基本上可以分为四个部分:新浪微博身份认证部分,调用API接口采集信息部分,关键词匹配部分以及信息显示及保存部分。 图3.1 系统总体设计 通过对新浪微博调用API接口实现信息采集分析及研究,确定了一整套采集方案。在采集过程中,首先需要是获取新浪微博身份验证,即申请Access Token码,,从而获取对新浪微博开发权限。进行身份验证以后,就可以开始对新浪微博进行开发了。在调用API接口Timeline获得授权用户所有微博信息以后,就可以通过输入关键词对微博信息进行关键词匹配,如果匹配成功,就将微博信息中id和微博内容显示在框架并以txt文件形式保存下来。由于新浪微博对API接口调用次数和频率有限制,一旦达到限制,系统将等待几分钟后才能进行采集。通过对系统详细分析,最终得到系统运行流程图如图3.2所示: 图3.2 系统流程图 3.2 系统各模块实现 3.2.1 授权认证实现 (1) 注册应用。到新浪微博开放平台去注册并创建一个应用,地址是:http: //open. weibo. com/development。新浪官方会给每一个应用一个专属App Key和App Secret。我事先已经注册了应用并获得了App Key和App Secret,如图3.3显示: 图3.3 开发者信息 (2) 下载SDK。到新浪官方下载各种开发语言对应SDK版本,下载地址:。我是用JAVA语言开发应用,所以下载是JAVA版本SDK。 (3) 填写配置文件。把下载得SDK导入到项目中去,找到config.properties文件,打开并填写好其中client_ID、client_SERCRET和redirect_URI三个参数,他们分别填写你应用App Key、App Secret和回调地址。代码如下: client_ID=APP KEY client_SERCRET=APP SERCRET redirect_URI= (4) 获取code参数。运行OAuth4Code.JAVA类,获取code,即用户授权登陆后,地址栏上出现code。这里需要注意一下,我们需要在原代码上稍加修改,后则运行会报错,修改后代码如下: Oauth oauth = new Oauth(); BareBonesBrowserLaunch.openURL(oauth.authorize("code")); System.out.println(oauth.authorize("code")); 运行代码后会弹出一个浏览器网页:*******。记录下网址中code=后代码。 (5) 通过code换取Access Token。获取到code后,接下来把code复制到控制台中,然后点击Enter键,会输入一些信息,记录下其中Access Token。获取到Access Token后,表示我们应用已经授权成功,我们就可以通过Access Token来访问新浪微博API接口。 3.2.2 启动模块实现 启动模块主要就是应用程序启动界面,后面大部分功能都是在该界面完成展示,该界面主要包括功能按钮区和数据展示区两部分,实现过程中涉及到关键技术是:“设置该应用程序背景图和图标”。JFrame是由这么几部分组成:最底下一层JRootPane,上面是glassPane(一个JPanel)和layeredPane(一个JLayeredPane),而layeredPane又由contentPane(一个JPanel)和menuBar构成。下面就是实现关键代码: %监听器注册 tosearch.addActionListener(new JAVA.awt.event.ActionListener() { public void actionPerformed(JAVA.awt.event.ActionEvent evt) { tosearchActionPerformed(evt); } }); jTextArea1.setEditable(false); jTextArea1.setColumns(20); jTextArea1.setRows(5); jScrollPane2.setViewportView(jTextArea1); %信息采集框架参数设置 JAVAx.swing.GroupLayout layout=new JAVAx.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup (JAVAx.swing.GroupLayout.Alignment.LEADING) .addComponent(jSeparator1) .addGroup(layout.createSequentialGroup() .addComponent(jScrollPane1) .addContainerGap()) .addGroup(layout.createSequentialGroup() .addGap(70, 70, 70) .addComponent(tosearch) .addContainerGap(73, Short.MAX_VALUE)) .addComponent(jScrollPane2) ); 上述代码主要实现对采集器界面参数设置,通过该段代码可以控制采集器界面大小,主页面输入窗口输出窗口设置。 3.2.3 微博内容获取 微博内容获取模块实现过程就是:用户通过输入一个关键词,然后点击开始采集按钮,系统就自动去访问新浪微博服务器,得到该用户所有微博,然后系统通过匹配关键词,将含有关键词微博id和微博内容显示出来并以txt形式保存下来。 在这个模块实现过程中涉及到关键技术有:获取微博所有信息实现、关键词匹配以及微博信息保存实现。下面逐一说明它们关键代码: (1) 微博信息获取 String access_token = "2.00Olu_xDZ7F
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服