基于java的社交网络的信息采集系统的研究与设计毕业设计(编辑修改稿)内容摘要:

出了基于新浪微博 API 与基于页面解析的新浪微博数据获取方案。 程序逻辑控制 API 调用方法与频率,获取 JSON 对象并解析实现高效数据获取。 同时将传统的网络爬虫结合网页解析技术结合 API 同时使用,解决了因 API接口开放不完善,且因在返回结果数量上限与调用频率方面的限制,导致不能有效实现新浪微博数据的全面获取的问题。 郭颖为 [12]设计并实现了基于多生产者多消费者模型的网页信息采集与存储的网络爬行器,采用多线程的方式分别对每类结构化的数据进行存储。 为了进一步提高爬行器的效率,文中 利用新浪微博 API 接口对微博用户的社交信息进行辅助采集。 冯典 [13]设计并实现了一种可根据数据种类的不同,创建多种爬虫的数据采集系统,一方面使用多线程技术大幅提高爬虫的效率,另一方面,创造了多 AppKey 复用机制,突破了新浪对 API 调用频率的限制,保证了爬虫可以连续不间断的工作。 论文主要工作 本文主要工作是研究微博数据的抓取方式,并实现对微博授权用户的微博信息的主题采集,主要工作有: (1) 微博 API 研究 利用微博系统的 SDK 获取数据,该技术通过调用微博平台提供的 API 来获取数据。 4 这部分工作需要利用微 博系统的 SDK 获取数据的工作流程,调用 API 需要通过用户身份的鉴权,目前使用 OAuth 鉴权。 其优点是数据准确快捷,很少 因微博平台的变化而变化,但缺点是接口提供商限制的因素多且不稳定。 (2) 系统设计与实现 设计 一个良好的界面,实现对微博授权用户信息的主题采集,并能够对采集信息进行保存以便于后续研究。 论文结构安排 本论文主要开发了基于 windows 平台的社交网络的采集系统,使用新浪微博提供 API结合第三方 SDK,对新浪微博上的用户数据进行采集。 本文分为四章进行阐述。 第一章绪论。 介绍论文的研究背景及意义,当前课题的研究现状,论文的主要工作以及结构安排。 第二章系统相关技术概述。 对论文所用的相关技术进行介绍,重点介绍了 JAVA 的 GUI图形界面和多线程以及新浪微博开放平台,详细介绍新浪微博授权过程及 API 调用流程。 第三章信息采集系统设计与实现。 重点阐述新浪微博的信息采集方法。 首先对系统的功能及结构进行分析,然后详细介绍系统总体路线设计。 最后对所设计的平台进行验证,分析其效果。 第四章总结与展望。 此章对整篇文章的工作进行了总结,并提出了下一步的工作方向。 5 第 2章 系统相关技术 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 等布局管理器组件。 新 浪微博开发平台 目前,新浪微博提供了相应的 API 供本系统使用,通过调用这些 API,本 系统可以获取如微博内容、用户关系、用户信息、用户标签等信息。 要使用这些 API,需要先创建一个自己的应用,然后进行认证,认证完成后即可使用 API 获取新浪微博的数据了。 微博 JAVA SDK 微博 JAVA SDK 是新浪为 JAVA 开发者提供的专门用于访问新浪微博的接口,通过微博 JAVA SDK,第三方微博应用可以很方便的访问微博提供的 API 接口,获取到需要的信息。 微博 JAVA SDK 的整体架构包含如下几个: src: weibo4j 封装了大部分接口,包括授权, timeline,用户等常见接口 6 包含了 请求的封装 包含了 user, status 等实体类 完成 json 解析的各种方法 包含了请求 api 接口时候所需要的工具类 examples:里面包含了封装接口的各个测试 demo 微博应用的创建 新浪的微博开放平台 [2](Weibo Open Platform)是新浪微博为开发者提供的一个开放平台,在此平台上,你只需要建立自己的应用,就可以使用新浪微博所提供的所有功能。 而用户只 需要对你的应用进行授权,即可使用你的应用,而你的应用也可以访问用户的信息了。 应用创建的流程图如下图所示 : 使 用 自 己 的微 博 账 号 进行 登 录进 入 新 浪 微博 开 放 平 台填 写 个 人 信息获 得 开 发 者身 份创 建 应 用编 写 并 提 交应 用 信 息获 得 A p p K e y提 交 成功是否 图 新浪微博创建和开发应用的流程图 如上图所示,首先使用自己的新浪微博账号进行登陆,如果没有的话,就要先注册,然后再登陆到新浪的微博开放 平台。 成功登陆以后,首先要填写个人的基本信息,因为如果此应用上线运营,需要保证此应用的合法性。 填写了个人信息后,就可以获得开发者的身份,这时就可以创建应用了。 创建应用时,除了填写应用的基本信息,包括名称、用途、应用网址以外,最重要的是应用的类型。 新浪微博的开放平台提供了三种类型的应用,这三种应用的特征如下表所示 : 7 表 不同种类的应用及其特征 网站接入类应用 网站接入类应用是新浪微博针对第三方网站提供的社会化网站接入网络接入方案。 接入类应用可以让开发者创建的网站支持用户使用微博的账号登录,这样可以使用 户更方便的浏览网站上的内容,以更好的推广网站。 站内应用 由于新浪的用户量巨大,接触到站内应用的人数量很大,便于大面积的提高应用的热度。 站内应用可以优先使用新浪微博的通知、邀请接口,另外站内应用比其他种类的应用具有更高的优先权,在新浪官方的应用广场上将获得更多的推荐机会,而且在同等的条件下,测拭期间的站内应用将比其他应用得到优先推荐。 移动应用 移动应用类可以满足用户使用手机、平板电脑平台分享信息的需求。 从上表可以看出,为了 获取 新浪微博中的 内容,本系统采用了站内应用的方式创建应用,这是为了获得更 高 的 权限 ,以获得更高的 API 调用频率。 另外,为了能以更高的频率调用 API,也希望 提供给 更多人使用, 可以使用更多的账号来访问 API,这也是本系统创建一个站内应用的原因之一。 创建完站内应用后,应用将会获得一个 App Key 和一个 Secret Key,这两个 Key 是以后会用到的。 其中 App Key 是应用在开放平台中的身份标志,每次应用要调用 API 时,都需要提供 App Key 和使用人账号,这样方便新浪统计某个应用的使用频率,这样既能保证某个应用不能频繁调用 API,避免出现恶意攻击新浪的事件,另一方面,新浪也可以通过使用 频率来进行热门应用的推荐。 而 App Secret 是新浪微博分配给某个应用的密码,这是为了保证其真实性,这个是唯一的,这样可以防止其他应用冒充某个热门应用。 OAuth 协议 [16]的全称是开放式认证协议,该协议为用户资源的授权提供了一个安全、开放而又简易的标准。 与以往的授权方式不同之处是 OAuth 的授权不会使第三方触及到用户的用户名和密码等敏感信息。 即第三方无需使用用户的用户名和密码就可以申请获得该用户授权的资源。 Access token(访问令牌)是 OAuth 协议的核心 ,它代表的是服务器端授权给第三方应用程序访问用户个人私有信息的一个标识,通常是以一组字符串的形式返回给第三方应用程序,该字符串中标示了访问用户私有信息的范围、访问时间段等信息。 新浪微博为了保护用户的隐私,对于应用所有访问用户的行为,都需要用户的同意,而同意的方式就是需要用户自己输入账户信息,包括账号和密码,然后点击 “ 同意 ”, 新浪微博会自动给应用一个通行证,此时应用才能 提取 用户的信息。 目前用户的身份鉴定有两个版本,一个是 ,另一个是 ,目前新浪微博对两个版本都进行支持, 8 但是从 2020 年 1 月 1 日起,就只支持 ,所以为了使本系统保持连续性,本系统使用 认证机制。 相比于 , 的使用更加方便和安全,它也是未来最主要的用户身份验证和授权方式。 下图是 的授权流程 [17]: 用户第三方应用新浪服务端1 . 用 户 访 问 应 用 , 想 操 作存 放 在 新 浪 服 务 端 的 资 源4 . 引 导 用 户 到 新 浪 服 务 端授 权 页 面 请 求 用 户 授 权5 . 用 户 在 新 浪 服 务 端 的网 页 上 输 入 用 户 名 和 密码 , 然 后 授 权 该 客 户 端访 问 所 请 求 的 资 源2 . 客 户 端 向 新 浪 服 务 端 请 求 临 时令 牌3 . 新 浪 服 务 端 验 证 客 户 端 之 后 ,授 予 临 时 令 牌6 . 授 权 成 功 后 , 新 浪 服 务 端 引 导用 户 返 回 客 户 端 的 网 页7 . 客 户 端 根 据 临 时 令 牌 从 新 浪 服务 端 那 里 获 取 访 问 令 牌8 . 新 浪 服 务 端 根 据 临 时 令 牌 和 用 户 的授 权 情 况 授 予 客 户 端 访 问 令 牌9 . 客 户 端 使 用 获 取 的 访 问 令 牌 存 放 新浪 服 务 端 上 的 受 保 护 的 资 源 图 新浪 认证流程 新浪微博提供的最新 JAVA SDK 的版本是 Weib。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。