好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

海量数据挖掘以新浪微博为例 ---结题论文(4.27).doc

8页
  • 卖家[上传人]:wt****50
  • 文档编号:37123762
  • 上传时间:2018-04-07
  • 文档格式:DOC
  • 文档大小:354KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 海量数据挖掘海量数据挖掘---以新浪微博以新浪微博为为例例结题论结题论文文武剑 蒋弘观 徐航 王悦关键词 微博 数据抓取 java API Heritrix序言序言在当前信息时代,各种信息技术高速发展在所有网民中,微博等社交网络应用快速崛起,微博作为 Web2.0 时代的新兴产物,以及便捷简单的使用方式,迅速的融入了当今人们的日常生活中,并且其背后有着大量潜在数据,数据中蕴含大量有待挖掘的有价值信息微博的使用人群数量基数大, 状态信息更新频繁、信息传播迅速,并且微博平台媒介用户占有率相对集中, 因此基于微博数据的采集技术的研究成为了十分值得关注的研究方向,是对微博数据进行进一步分析研究的基础在中国,已有 14%的互联网用户开始使用微博, 而新浪微博的市场份额占有率接近 87%, 是中国微博产业的主导力量分析主流微博客网站,对网页数据进行采集和分析,提高微博客网站访问量,对吸引网友具有积极的促进作用,对网站经营者来说具有重要意义本项目研究面向海量微博数据的采集技术,并以目前国内最大的微博服务供应商新浪为主要的研究对象主要对比采用新浪开放的API 与使用网络爬虫获取微博数据的采集性能与采集质量。

      具体研究内容为:目前新浪向公众开放了 API 接口进行数据的获取,但是由于API 服务器的限制,只能返回一部分的信息,因此本项研究将利用新浪微博开放测试的 API 接口,与传统的网络爬虫方式进行数据的获取并通过返回的 json 文件,以及网络爬虫分类分析人们目前最关注的是那些事件,那些话题,还有潜在的网络公众人物并通过优化查找办法,找出最优的基于 API 与网络爬虫相结合的微博数据采集方法实验环境介绍我们的实验采用的测试机为:Lenovo PC 机,处理器:Intel(R)Core(TM)i5 CPU,内存:8.00GB,运行的环境是 Win7 系统,接入的网络为校园无限网,开发所采用的 IDE 环境为:Eclipse一、一、 新浪新浪 API 数据挖掘方法概述数据挖掘方法概述新浪微博 API 由一系列的接口程序构成,开发者调用这些程序,实现对微博系统进行采集用户数据、微博内容,写入数据等功能新浪微博的开放 API 接口程序具有使用方便、数据目的性强、获取相应数据简洁等特点为了方面广大的开发者调用新浪数 API 接口,新浪微博 API 为开发者提供了丰富的开放接口,为程序更简洁、更高效地获取微博数据提供了保障,同时也为开发者做好了 SDK 的开发包。

      我们小组首先尝试使用 API 获取微博数据具体实现路线如下一)OAuth2.0 认证1) 开发者向新浪微博 OAuth2.0 服务提供商申请应用,获得应用的专属 App Key、 App Secret 和 设置回调页2) 将上一步得到的 App Key 和 App Secret 发给新浪微博用户授权地址请求 Request Token 授权3) 授权后,在浏览器中得到一串 pin 码,开发者再向新浪微博Access Token 地址发起请求,将上一步授权的 Request Token换取成 Acess Token4) 经服务器同意用户请求,并向其颁发通过新浪微博授权的Access Token5) 用户可将获得的授权的 Access Token 向 API 服务器请求用户身份资源的使用授权一)配置 APi先要配置文件 config.propertiesClient_ID 为 AppKey,client_SERCRET 为 APPsercret,redirect_URL为自己填写的应用地址然后运行 OAuth4Code 通过输入返回的CODE 获取 access_token我们小组以时间为线索,通过 API 获取当前的公共微博数据。

      分高效的微博抓取方法每次调用接口可以返回 20 条当前微博为了使结果更为直观,我们改写了程序,屏蔽掉了一些用处不大的返回值但是由于新浪 API 同一 IP 地址访问数量有限制针对一个服务器 IP 的请求次数限制如下:测试授权普通授权中级授权高级授权合作授权1000 次/小时10000 次/小时20000 次/小时30000 次/小时40000 次/小时因此,在普通权限下我们只能每小时访问 10000 次,也就是获取2 万条微博当然通过申请多个开发者账号可以使这一数字成倍增长但是相比于网络爬虫的数据爬取量来比较的话,网络爬虫因为没有访问数量的限制,仍然很有优势二、二、基于基于 Heritrix 的微博数据爬取的微博数据爬取Heritrix 是 Java 开发的开源网络爬虫工具,由一些核心类和插件模块组成,可在 http://www.archive.org 中下载下载之后在 Eclipse中配置,配置完成后,由 CrawlController 启动线程,程池中,选择一个预定的 URL,从所选择的 URL 链接地点下载远程文件到本地电脑,分析并归档下载到的文档,写入磁盘镜像目录用网络爬虫爬取微博信息时首先要解决登录的问题。

      新浪微博采用了 64BASE 加密算法过程如下:1. 将原有字符串以 utf-8 编码格式转换为原始二进制字符2. 将原始二进制数分组,每三字节为一组,不足三字节的用 0 补空位3. 将每组三字节 24 位编码分为四段,每段前加 00 组成四字节的 32 位编码4. 将每组 32 位编码以每 8b 分段,将每 8b 字符转成十进制数,通过 base64 编码表将对应数字转化成相应字符Heritrix 操作界面:抓取数据结果跟据部分抓取结果来看都跟微博相关但是由于获取的是网页的源码,在整个页面中微博内容占的信息只是很小的一部分,岁偶然说抓取数量不受限制,但是在效率方面上并不是很高抓取一个页面有时候只有几条微博,甚至有的时候并没有微博信息不过可以通过正则表达式来过滤抓取的内容以及通过修改 Heritrix 来优化爬虫的爬行方向结论结论 整个实验的顺利完成验证基于新浪微博 API 技术采集步骤方法的研究,并且获取了当前微博用户的基本信息也同样比较顺利的通过 Heritrix 爬取了微博的信息通过两种种爬行获得的数据进行计算,我们使用占用空间大小,抓取速率,抓取微博数等数据进行计算,通过自定义的公式来定义获取能力:抓取速率/文件大小平均数值APIHeritrix文件大小(每条微博)3kb100kb抓取速率20/s0.4/s抓取能力6.60.004由此可见 API 的抓取能力是远高于爬虫的,但是由于接口限制,爬虫将在 50000s 之后超越 API,但是如果提高网速的话,爬虫也存在超越 API 的潜力。

      参考文献1. 新浪微博数据挖掘方案 廉捷 2. 基于 Heritrix 的主题网络爬虫设计与实现 高伟锋3.Java 平台中 Base64 编码/解码算法的改进 姚峰。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.