天天看点

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

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

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

准备工作

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

实现步骤

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

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

3.然后,单击get token,选择get access token,如图20所示。

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

4.在user data permissions面板中,选择user_tagged_places,并单击get access token,如图21所示。

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

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

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

6.尝试使用rvest访问facebook api:

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

运行原理

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

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

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

更多技能

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

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

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

1.要创建一个授权的应用令牌,登入facebook开发者页面,单击add a new app,如图23所示。

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

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

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

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

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