《数据科学:R语言实现》——2.8 获取Facebook数据

简介:

本节书摘来自华章计算机《数据科学:R语言实现》一书中的第2章,第2.8节,作者 丘祐玮(David Chiu),更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.8 获取Facebook数据

社交网络数据对于发掘和分析社会交互的用户来说,是另一个很好的数据源。社交网络数据与网站数据的主要不同是,社交网络通常提供了半结构化的数据格式(大部分是JSON)。因此,我们可以轻松地访问到数据,而不需要关注数据是如何结构化的。在本教程中,我们会介绍如何使用rvest和rson来读取和解析Facebook的数据。

准备工作

在本教程中,你需要给开发环境安装R,同时确保计算机可以访问互联网。

实现步骤

执行下列步骤,访问Facebook数据。

1.首先,我们需要登入Facebook,访问开发者页面(https://developers.facebook.com/),如图18所示。

image

2.单击Tools & Support,选取Graph API Explorer,如图19所示。

image

3.然后,单击Get Token,选择Get Access Token,如图20所示。

image

4.在User Data Permissions面板中,选择user_tagged_places,并单击Get Access Token,如图21所示。

image

5.复制生成的请求令牌到剪贴板,如图22所示。

image

6.尝试使用rvest访问Facebook API:
image

7.安装加载rjson程序包:
image

8.从fb_data抽取数据,使用fromJSON读取JSON数据:
image

9.使用sapply从fb_json抽取place的名称和ID:
image

10.最后,使用data.frame整理数据:
image

运行原理

在本教程中,我们介绍了如何通过Facebook的图形API获取社交网络数据。与网页爬取不同,在发出任何内部数据请求之前,你需要获取Facebook的访问令牌。有两种获取访问令牌的方式:一个是使用Facebook的图形API探索器,另一个是创建Facebook应用。在本教程中,我们介绍了如何使用Facebook的图形API探索器获取访问令牌。

Facebook的图形API探索器可以代替用户创建请求URL访问Facebook数据。为了访问探索器页面,我们首先访问Facebook的开发者页面(https://developers.facebook.com/ )。图形API探索器页面位于Tools & Support的下拉菜单中。来到探索器页面后,我们从Get Token的下拉菜单中选取Get Access Token。然后,会出现一个表格窗口,你可以查看有关应用的各个级别的访问许可。例如,我们可以查看tagged_places来访问之前标记的位置。选好所需的许可后,我们可以单击Get Access Token运行图形API探索器访问我们的内部数据。完成这些步骤之后,你可以看到一个访问令牌,它是一个临时的、短期有效的、允许访问Facebook API的令牌。

借助访问令牌,我们可以使用R访问Facebook API。首先,我们需要一个HTTP请求程序包。类似于网页爬取教程,我们使用rvest程序包生成请求。我们创建一个请求URL,同时带有Facebook API的access_token(从图形API探索器复制得到)。我们应该从响应输出获取到JSON格式化的数据。要读取JSON格式化数据的属性,我们安装加载了RJSON程序包。我们可以使用函数fromJSON读取来自响应的JSON格式字符串。

最后,我们使用函数sapply读取地点和ID信息,然后我们使用数据框转换抽取的信息。在教程结尾,我们应该可以看到数据框格式的数据。

更多技能

要更多了解图形API,可以阅读下列Facebook官方文档:https://developers.facebook.com/docs/reference/api/field_expansion/

1.首先,我们需要安装加载Rfacebook程序包:
image

2.然后,我们通过提供的访问令牌,使用内置函数获取用户数据或者访问类似的信息:
image

如果你不希望每次都登入Facebook,就可以爬取公开粉丝网页,你可以创建一个Facebook应用来访问内部数据。

1.要创建一个授权的应用令牌,登入Facebook开发者页面,单击Add a New App,如图23所示。

image

2.你可以创建一个新的Facebook应用,只要没有被注册过即可,可以带有名称和合法的e-mail ID,如图24所示。

3.然后,你可以复制应用ID和密钥,并创建访问令牌给|,如图25所示。现在你可以使用这个令牌,通过图形API爬取公开粉丝页面信息了:

4.与Rfacebook类似,我们可以把access_token替换成|:

image

image

相关文章
|
4天前
|
移动开发 数据可视化
R语言两层2^k析因试验设计(因子设计)分析工厂产量数据和Lenth方法检验显著性可视化|数据分享(二)
R语言两层2^k析因试验设计(因子设计)分析工厂产量数据和Lenth方法检验显著性可视化|数据分享(二)
14 0
|
4天前
|
自然语言处理 算法 数据挖掘
【视频】文本挖掘:主题模型(LDA)及R语言实现分析游记数据
【视频】文本挖掘:主题模型(LDA)及R语言实现分析游记数据
15 0
|
5天前
|
前端开发 数据建模 计算机视觉
R语言主成分回归(PCR)、 多元线性回归特征降维分析光谱数据和汽车油耗、性能数据
R语言主成分回归(PCR)、 多元线性回归特征降维分析光谱数据和汽车油耗、性能数据
29 8
|
5天前
|
机器学习/深度学习
R语言集成模型:提升树boosting、随机森林、约束最小二乘法加权平均模型融合分析时间序列数据
R语言集成模型:提升树boosting、随机森林、约束最小二乘法加权平均模型融合分析时间序列数据
11 0
|
5天前
|
数据采集 数据可视化 定位技术
R语言空气污染数据的地理空间可视化和分析:颗粒物2.5(PM2.5)和空气质量指数(AQI)
R语言空气污染数据的地理空间可视化和分析:颗粒物2.5(PM2.5)和空气质量指数(AQI)
15 0
|
5天前
|
机器学习/深度学习 前端开发 数据挖掘
R语言计量经济学:工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
R语言计量经济学:工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
37 0
|
6天前
|
存储 数据可视化 数据挖掘
R语言可视化:ggplot2冲积/桑基图sankey分析大学录取情况、泰坦尼克幸存者数据
R语言可视化:ggplot2冲积/桑基图sankey分析大学录取情况、泰坦尼克幸存者数据
12 1
|
6天前
|
机器学习/深度学习 API 算法框架/工具
R语言深度学习:用keras神经网络回归模型预测时间序列数据
R语言深度学习:用keras神经网络回归模型预测时间序列数据
16 0
|
6天前
|
机器学习/深度学习 数据采集 TensorFlow
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
23 0
|
6天前
|
存储 算法 前端开发
R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据
R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据
26 0

热门文章

最新文章