【R图秀-2】社交网络数据可视化(一)

作者简介Introduction

傅兴:个人公众号:Rapp

往期回顾

【R图秀-1】12306列车数据可视化


为了进一步提高自己数据获取的能力,我把目光放到了互联网上一个重要的数据来源:社交网络(Social Network),比如国外的facebook和twitter,以及国内的微博和微信。由于访问facebook和twitter比较困难,我最终选择新浪微博作为分析的对象。

我首先学习的是新浪微博的API,看看有没有更简单的方法获取数据。遗憾的是,如果想通过API获取目标用户的微博,必须首先获得对方的授权。我获取微博数据只是出于学习的目的,并不是要开发基于微博的应用,所以此路不通,果断放弃。我觉得最靠谱的还是用RSelenium写个程序来操作浏览器,自动帮我刷微博。

数据获取的技术问题解决了,下面就需要考虑抓取哪些人的微博。演艺明星是微博上大家比较关注的对象,就先从他们入手吧!我平时很少关注娱乐圈,认识的明星也不多,但是挺喜欢和家人一起看《奔跑吧兄弟》(跑男),所以今天就来分析一下跑男中的明星(邓超,李晨和Angelababy)以及他们的另一半(孙俪,范冰冰和黄晓明)的微博数据。


爬虫代码的主要部分是2个函数:登录函数(weibo_login)和抓取函数(fetch_post)


需要注意的是,目前的抓取函数还不支持人名搜索,所以在抓取某人的微博之前,首先要手动看一下他微博URL上的用户名是什么(用户名的具体位置在weibo.com和?中间),然后用该用户名作为参数调用抓取函数,比如下面的代码:

 在展示微博数据之前,我们必须先想清楚自己想看什么?想回答什么样的问题,比如:

1. 我很想知道明星微博的高频词汇有哪些?夫妻之间会不会有“共同语言”?
2. 我还想了解明星的朋友圈有哪些人,夫妻之间的朋友有多大的交集?

我们可以用词云(word cloud)来展示各个明星的微博中最常出现的词汇(这里只考虑名词,其他词性的词汇都已过滤掉):





我们可以看到,“电影”是他们微博中出现最频繁的词汇,说明他们利用微博在向粉丝们宣传自己的电影,其次就是和家人朋友相关的词汇。由于时间有限,我没有继续深挖下去。

生成词云的代码如下:


接下来要回答的是第二个问题,如何从明星们的微博中挖掘出他们的社交网络?我首先想到的是微博中@某人的功能,@后面的微博账号和明星之间应该存在某种关联,如果@某人的次数很多,说明两者之间的关系密切(好友或家人)。接下来我们就来看看明星夫妻之间的“朋友圈”是怎样的。


1. 黄晓明和Angelababy:



2. 李晨和范冰冰:


3. 邓超和孙俪(邓超绝对是模范丈夫,@老婆的次数这么多!)

统计@次数的代码如下,为了能看清网络中的节点,我过滤掉了一些低频的@:


下面是网络可视化的代码:

如果你也是某位明星的粉丝,就用R来分析一下他们的微博吧!今天的【社交网络数据可视化】就到这里,欢迎继续关注!






 往期精彩内容整理合集 

2017年R语言发展报告(国内)

R语言中文社区历史文章整理(作者篇)

R语言中文社区历史文章整理(类型篇)


公众号后台回复关键字即可学习

回复 R                  R语言快速入门及数据挖掘 
回复 Kaggle案例  Kaggle十大案例精讲(连载中)
回复 文本挖掘      手把手教你做文本挖掘
回复 可视化          R语言可视化在商务场景中的应用 
回复 大数据         大数据系列免费视频教程 
回复 量化投资      张丹教你如何用R语言量化投资 
回复 用户画像      京东大数据,揭秘用户画像
回复 数据挖掘     常用数据挖掘算法原理解释与应用
回复 机器学习     人工智能系列之机器学习与实践
回复 爬虫            R语言爬虫实战案例分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值